setDeviceSnapEnhanced (setDeviceSnapEnhanced: Device snapshot)
setDeviceSnapEnhanced: setDeviceSnapEnhanced: Device snapshot
Previous: setDeviceSnap · Next: timeZoneConfigByDay · Device operation.
Function details
Upgraded version of capturing the current screen image function of the camera, and supports the capture frequency of 1 time per second.
The client request interval must be greater than or equal to 1s. If the client request interval is less than 1s, the last snapshot will be returned by default. In the returned result, the URL for the snapshot access (url) is valid within 7 days.
Remarks:
It is recommended that developers determine which device capture interface to use after measuring the interface based on the device performance:
If the device performance is good (it can process and return the snapshot picture every second), it is recommended that the developer call the setDeviceSnapEnhanced interface;
If the device performance is poor (mainly for devices listed before 2017), it is recommended that developers call the setDeviceSnap interface for device snapshots.
Request address
https://openapi-[DataCenter].easy4ip.com/openapi/setDeviceSnapEnhanced
Request format
HTTP POST. JSON body layout: Request conventions. Sign with Signature.
Minimum permissions required for sub-account token request
"Permission":"Capture" "Resource":"cam:serial number:channel number"
Incoming parameter description
| Parameter name | Parameter type | Required or not | Default value | Legal value | Parameter description |
|---|---|---|---|---|---|
| token | String | Yes | Administrator or sub-account accessToken | ||
| deviceId | String | Yes | Device serial number | ||
| channelId | String | Yes | Channel ID | ||
| encrypt | Boolean | No | false | true, false | When true, return an encrypted snapshot URL; omitted or false by default. |
Sample input
{
"system":{
"ver":"1.0",
"appId":"lcdxxxxxxxxx",
"sign": "xjhCQBoJ9hRDsCjyDcHjtDNzRZ3ZJezcawsfWeiaoxU=",
"time":1603369692,
"nonce":"63e74c29-a30d-4827-b8e1-691faec14e2b"
},
"id":"ad9a278f-bedd-4c06-ad4a-ea0a971836d1",
"params":{
"deviceId":"TESTQWERXXXX",
"channelId":"0",
"token":"At_00000ad9e6e87f0142eb92e207aec46a"
}
}
Return data field description
| Field | Type | Description |
|---|---|---|
| url | String | Capture access address |
Sample output
{
"result":{
"msg":"The operation was successful.",
"code":"0",
"data":{
"url":"https://storage.example.com/snap/956fe604722b45fba0e098ba6eae3178.jpg?Expires=1603974760&AccessKeyId=EXAMPLE&Signature=EXAMPLE"
}
},
"id":"ad9a278f-bedd-4c06-ad4a-ea0a971836d1"
}
Error codes
This method may return the codes below. See Return codes and Capability errors for the full catalog.
Gateway and auth (SN / TK / OP)
| Code | Meaning | Next step |
|---|---|---|
SN1001 | Signature error | Check sign per Development specification |
TK1002 | Token invalid or expired | Refresh accessToken |
OP1002 | Missing required parameter | Add required fields |
OP1003 | Invalid parameter | Match this page’s parameter table |
OP1009 | Permission denied | Check token and device bind/share grants |
OP1013 | Total call limit exceeded | Reduce call rate |
OP1014 | Daily per-interface limit exceeded | See Interface call limits |
DV1007 | Device offline | Wait until the device is online |
See Return codes · OP/SN/TK for the full catalog.
Sub-accounts (SUB)
| Code | Meaning | Next step |
|---|---|---|
SUB1001–SUB1002 | Sub-account lacks API permission | Update policy via addPolicy |
SUB1005 | Sub-account token expired | Refresh subAccountToken |
SUB1006 | No device grant for sub-account | Check Resource and device serial |
SUB1008 | Sub-account not bound to app | Create and bind the sub-account first |
See Return codes · SUB.
Device access and channels (DV10xx)
| Code | Meaning | Next step |
|---|---|---|
DV1007 | Device offline or timeout | Wait for the device to come online |
DV1009 | Device busy | Retry later |
DV1012 | Insufficient share/grant permission | Check sub-account Permission / Resource |
DV1019 | Capability not supported | Confirm model and capability list |
DV1020 | Channel offline | Check channel status |
DV1026 | Function not supported | Use another API or upgrade firmware |
DV1028 | Not bound or channel missing | Verify deviceId / channelId |
See Return codes · DV.
Snapshot (DV10xx)
| Code | Meaning | Next step |
|---|---|---|
DV1012 | Snapshot failed | Check channel online state and permissions |
