- 1. 简介
- 2. IVY云平台API通用示例及说明
- 2.1 通用示例
- 2.2 Api相关配置信息说明
- 2.2.1 Api域名
- 2.2.2 重要参数(重要)
- 2.3 常见错误码(重要)
- 2.3.1 系统错误码
- 2.3.2 身份验证错误
- 3. Foscam云平台API列表
- 3.1 设备管理
- 3.1.1 添加设备
- 3.1.2 删除设备
- 3.1.3 修改设备
- 3.1.4 查询用户设备
- 3.1.5 根据mac查询设备
- 3.1.6 解绑设备
- 3.2 服务激活与授权
- 3.2.1 查询用户未激活授权记录
- 3.2.2 激活权限
- 3.2.3 获取用户设备当前服务信息
- 3.2.4 查询用户所有设备的有效的的授权记录
- 3.3 云存储与直播
- 3.3.1 基础子服务信息查询
- 3.3.2 APP查询存在录像日期列表
- 3.3.3 APP获取录像时间
- 3.3.4 App获取播放录像地址
- 3.4 其他
- 3.4.1 服务器时间查询
- 3.5 固件升级
- 3.5.1 根据机型名称获取最新版本固件(IPC)
中文简体 English
IVY云平台云存储API
版本记录:
修订日期 | 版本号 | 修改人 | 描述 |
---|---|---|---|
2019-12-14 | V1.0 | 杨昭炎 | 文档在线发布 |
1. 简介
WebService API:支持get和post方式调用,所有的请求返回都是json格式数据.
2. IVY云平台API通用示例及说明
2.1 通用示例
WebServiceAPI示例:
- https://{HOST}/gateway?service=xxx.xxx?param1=xxx¶m2=xxx
说明:
1.HOST指域名,测试环境域名为sandboxt-api.ivyiot.io;
2.Service=xxx.xx,此处指定接口名称;
3.方法主要分为GET 和 POST方法;
返回结果:
{
"errorCode":"",
"failureDetails":"",
"data":""/*如果存在*/
}
a) errorCode为错误码,当返回空字符串时表示成功,其他值时参考对应的api状态码表。
b) failureDetails为错误描述,当错误码不为空时,此字段解释该错误码的含义.
c) data:返回数据,当有返回数据时,数据在此参数中,具体data数据结构见具体的Api接口
2.2 Api相关配置信息说明
2.2.1 Api域名
测试环境: sandboxt-api.ivyiot.io(海外)、test-api.myfoscam.cn(国内)
线上环境: api.myfoscam.com(海外)、api.myfoscam.cn(国内)
2.2.2 重要参数(重要)
云平台内部应用身份信息
clientId:oemkey
clientSecret:397ff5985bb7437198a9ef51b4815caf
用户身份参数(通过密码授权登录接口获得)
openId:用户身份Id
accessToken:用户身份AccessToken
2.3 常见错误码(重要)
2.3.1 系统错误码
系统级错误码,所有接口调用都可能抛出此类错误码;
码值 | 说明 | 原因及解决方法 |
---|---|---|
FC_SERVICE_NOT_IMPLEMENT(009999) | 该api不存在或者未实现 | 检查api的拼写是否正确,注意大小写及是否存在空格 |
FC_INVALID_PARAMETER(000006) | 请求参数错误 | 请求参数的是否齐全,参数名称是否拼写正确, http方法是否选择正确(get或post) |
FC_SYSTEM_ERROR(000099) | 系统错误 | 服务器内部错误和服务重启等情况导致,检查api调用或稍后重试 |
2.3.2 身份验证错误
需要验证身份的接口,身份信息不正确或者身份信息过期将抛出如下错误
码值 | 说明 | 原因及解决方法 |
---|---|---|
FC_AUTH_APPKEY_NOT_EXISTS(030010) | AppKey不存在 | 检查AppKey输入是否正确 |
FC_AUTH_APPSECRET_NOT_MATCH(030020) | AppSecrect不匹配 | 检查AppSecrect输入是否正确 |
FC_AUTH_OPENID_NOT_EXISTS(030030) | openId不存在 | 检查openId输入是否正确 |
FC_AUTH_TOKEN_NOT_EXISTS(030091) | token不存在 | 检查openId和accessToken的输入是否正确 |
FC_AUTH_OPENID_NOT_MATCH(030031) | openId不匹配 | 检查openId输入是否正确 |
FC_AUTH_ACCESSTOKEN_NOT_MATCH(030040) | accessToken不匹配 | 检查accessToken是否正确 |
FC_AUTH_ACCESSTOKEN_EXPIRED(030041) | accessToken过期 | 重新登录 |
3. Foscam云平台API列表
3.1 设备管理
3.1.1 添加设备
接口描述:
- 添加设备
请求URL:
- https://{HOST}/gateway?service=user_ipc_setting_v2_0.addOemDevice
请求方式:
- POST
请求头:
名称 | 是否必须 | 类型 | 说明 |
---|---|---|---|
Content-Type | 是 | string | 请求类型: application/x-www-form-urlencoded |
请求参数:
参数名 | 数据类型 | 是否必须 | 说明 | 长度 |
---|---|---|---|---|
clientId | String | 必选 | appKey | 40 |
openId | String | 必选 | openId(用户标志) | 40 |
accessToken | String | 必选 | accessToken | 40 |
macAddr | String | 必选 | 设备Mac地址(唯一标识) | 20 |
deviceName | String | 必选 | 用户设置的设备名称 | 50 |
username | String | 必选 | 用户设置的设备用户名 | 64 |
password | String | 必选 | 用户设置的设备密码(请加密) | 160 |
hasusertag | int | 必选 | 是否支持推送:0不支持,2支持 | 1 |
supportStore | int | 必选 | 支持云存储:0不支持,1支持 | 1 |
supportRichMedia | int | 必选 | 支持富媒体(图片等形式)推送:0不支持,1支持 | 1 |
productName | String | 必选 | 机型名称 | 50 |
oemCode | String | 必选 | Oem编号 | 20 |
返回示例:
{
"errorCode":"",
"failureDetails":""
}
返回参数说明:
参数名 | 说明 |
---|---|
errorCode | 错误类型,见返回码 |
failureDetails | 错误描述 |
错误码说明:
基础返回码 | 说明 |
---|---|
FC_SERVICE_NOT_IMPLEMENT(009999) | 该api不存在或者未实现 |
FC_INVALID_PARAMETER(000006) | 请求参数错误 |
FC_SYSTEM_ERROR(000099) | 系统错误 |
业务返回码 | 说明 |
FC_AUTH_APPKEY_NOT_EXISTS(030010) | AppKey不存在 |
FC_AUTH_APPSECRET_NOT_MATCH(030020) | AppSecrect不匹配 |
FC_AUTH_OPENID_NOT_EXISTS(030030) | openId不存在 |
FC_AUTH_TOKEN_NOT_EXISTS(030091) | token不存在 |
FC_AUTH_OPENID_NOT_MATCH(030031) | openId不匹配 |
FC_AUTH_ACCESSTOKEN_NOT_MATCH(030040) | accessToken不匹配 |
FC_AUTH_ACCESSTOKEN_EXPIRED(030041) | accessToken过期 |
FC_ACCOUNT_USER_IPC_SETTING_ALREADY_EXISTS(020040) | user ipcsetting already exists(设备已经被添加) |
FC_ACCOUNT_THE_IPC_HAS_BEEN_ADDED_BY_OTHERS(020042) | the ipc has been added by others(设备被其他用户添加) |
3.1.2 删除设备
接口描述:
- 删除用户设备
请求URL:
- https://{host}/gateway?service=user_ipc_setting_v2_0.delOemDeviceByMac
请求方式:
- POST
请求头:
名称 | 是否必须 | 类型 | 说明 |
---|---|---|---|
Content-Type | 是 | string | 请求类型: application/x-www-form-urlencoded |
请求参数:
参数名 | 数据类型 | 是否必须 | 说明 | 长度 |
---|---|---|---|---|
clientId | String | 必选 | appKey | 40 |
openId | String | 必选 | openId(用户标志) | 40 |
accessToken | String | 必选 | accessToken | 40 |
macAddr | String | 必选 | 设备Mac | 20 |
返回示例:
{
"errorCode":"",
"failureDetails":""
}
返回参数说明:
参数名 | 说明 |
---|---|
errorCode | 错误类型,见返回码 |
failureDetails | 错误描述 |
错误码说明:
基础返回码 | 说明 |
---|---|
FC_SERVICE_NOT_IMPLEMENT(009999) | 该api不存在或者未实现 |
FC_INVALID_PARAMETER(000006) | 请求参数错误 |
FC_SYSTEM_ERROR(000099) | 系统错误 |
业务返回码 | 说明 |
FC_AUTH_APPKEY_NOT_EXISTS(030010) | AppKey不存在 |
FC_AUTH_APPSECRET_NOT_MATCH(030020) | AppSecrect不匹配 |
FC_AUTH_OPENID_NOT_EXISTS(030030) | openId不存在 |
FC_AUTH_TOKEN_NOT_EXISTS(030091) | token不存在 |
FC_AUTH_OPENID_NOT_MATCH(030031) | openId不匹配 |
FC_AUTH_ACCESSTOKEN_NOT_MATCH(030040) | accessToken不匹配 |
FC_AUTH_ACCESSTOKEN_EXPIRED(030041) | accessToken过期 |
FC_ACCOUNT_USER_IPC_SETTING_NOT_EXISTS(020041) | user ipcsetting not exists(设备不存在) |
3.1.3 修改设备
接口描述:
- 修改设备
请求URL:
- https://{host}/gateway?service=user_ipc_setting_v2_0.updateOemDevice
请求方式:
- POST
请求头:
名称 | 是否必须 | 类型 | 说明 |
---|---|---|---|
Content-Type | 是 | string | 请求类型: application/x-www-form-urlencoded |
请求参数:
参数名 | 数据类型 | 是否必须 | 说明 | 长度 |
---|---|---|---|---|
clientId | String | 必选 | appKey | 40 |
openId | String | 必选 | openId(用户标志) | 40 |
accessToken | String | 必选 | accessToken | 40 |
macAddr | String | 必选 | 设备Mac地址(唯一标识) | 20 |
deviceName | String | 可选 | 用户设置的设备名称 | 50 |
username | String | 可选 | 用户设置的设备用户名 | 64 |
password | String | 可选 | 用户设置的设备密码(请加密) | 160 |
hasusertag | int | 可选 | 是否支持推送:0不支持,2支持 | 1 |
supportStore | int | 可选 | 支持云存储:0不支持,1支持 | 1 |
supportRichMedia | int | 可选 | 支持富媒体(图片)推送:0不支持,1支持 | 1 |
productName | String | 可选 | 机型名称 | 50 |
返回示例:
{
"errorCode":"",
"failureDetails":""
}
返回参数说明:
参数名 | 说明 |
---|---|
errorCode | 错误类型,见返回码 |
failureDetails | 错误描述 |
错误码说明:
基础返回码 | 说明 |
---|---|
FC_SERVICE_NOT_IMPLEMENT(009999) | 该api不存在或者未实现 |
FC_INVALID_PARAMETER(000006) | 请求参数错误 |
FC_SYSTEM_ERROR(000099) | 系统错误 |
业务返回码 | 说明 |
FC_AUTH_APPKEY_NOT_EXISTS(030010) | AppKey不存在 |
FC_AUTH_APPSECRET_NOT_MATCH(030020) | AppSecrect不匹配 |
FC_AUTH_OPENID_NOT_EXISTS(030030) | openId不存在 |
FC_AUTH_TOKEN_NOT_EXISTS(030091) | token不存在 |
FC_AUTH_OPENID_NOT_MATCH(030031) | openId不匹配 |
FC_AUTH_ACCESSTOKEN_NOT_MATCH(030040) | accessToken不匹配 |
FC_AUTH_ACCESSTOKEN_EXPIRED(030041) | accessToken过期 |
FC_ACCOUNT_USER_IPC_SETTING_NOT_EXISTS(020041) | user ipcsetting not exists(设备不存在) |
3.1.4 查询用户设备
接口描述:
- 查询用户所属的设备信息
请求URL:
- https://{host}/gateway?service=user_ipc_setting_v2_0.getOemDeviceByUser
请求方式:
- GET
请求头:
- 无 |
请求参数:
参数名 | 数据类型 | 是否必须 | 说明 | 长度 |
---|---|---|---|---|
clientId | String | 必选 | appKey | 40 |
openId | String | 必选 | openId(用户标志) | 40 |
accessToken | String | 必选 | accessToken | 40 |
返回示例:
{
"errorCode":"",
"data":[
{
"userId":622258,
"macAddr":"macAddr",
"deviceName":"deviceName",
"productName":"productName",
"username":"asd",
"password":"password",
"hasusertag":1,
"supportStore":1,
"supportRichMedia":1,
"oemCode":"7128"
},
{
"userId":622258,
"macAddr":"macAddr3",
"deviceName":"deviceName1",
"productName":"productName",
"username":"username1",
"password":"password1",
"hasusertag":1,
"supportStore":0,
"supportRichMedia":0,
"oemCode":"7128"
}
]
}
返回参数说明:
参数名 | 说明 |
---|---|
errorCode | 错误类型,见返回码 |
failureDetails | 错误描述 |
macAddr | 设备Mac地址 |
userId | 用户id |
username | 用户设置的设备用户名 |
password | 用户设置的设备密码 |
deviceName | 设备名称 |
productName | 机型名称 |
hasusertag | 推送支持参数,0不支持推送,1写入失败(支持)2写入成功(支持) |
supportStore | 支持云存储,0不支持,1支持 |
supportRichMedia | 支持富媒体推送,0不支持,1支持 |
oemCode | 设备所属厂商oem码 |
错误码说明:
基础返回码 | 说明 |
---|---|
FC_SERVICE_NOT_IMPLEMENT(009999) | 该api不存在或者未实现 |
FC_INVALID_PARAMETER(000006) | 请求参数错误 |
FC_SYSTEM_ERROR(000099) | 系统错误 |
业务返回码 | 说明 |
FC_AUTH_APPKEY_NOT_EXISTS(030010) | AppKey不存在 |
FC_AUTH_APPSECRET_NOT_MATCH(030020) | AppSecrect不匹配 |
FC_AUTH_OPENID_NOT_EXISTS(030030) | openId不存在 |
FC_AUTH_TOKEN_NOT_EXISTS(030091) | token不存在 |
FC_AUTH_OPENID_NOT_MATCH(030031) | openId不匹配 |
FC_AUTH_ACCESSTOKEN_NOT_MATCH(030040) | accessToken不匹配 |
FC_AUTH_ACCESSTOKEN_EXPIRED(030041) | accessToken过期 |
3.1.5 根据mac查询设备
接口描述:
- 通过mac地址查询设备信息
请求URL:
- https://{host}/gateway?service=user_ipc_setting_v2_0.getOemDeviceByUserAndMac
请求方式:
- GET
请求头:
- 无 |
请求参数:
参数名 | 数据类型 | 是否必须 | 说明 | 长度 |
---|---|---|---|---|
clientId | String | 必选 | appKey | 40 |
openId | String | 必选 | openId(用户标志) | 40 |
accessToken | String | 必选 | accessToken | 40 |
macAddr | String | 必选 | 设备Mac地址(唯一标识) | 20 |
返回示例:
{
"errorCode":"",
"data":{
"userId":622258,
"macAddr":"macAddr",
"deviceName":"deviceName",
"productName":"productName",
"username":"asd",
"password":"password",
"hasusertag":1,
"supportStore":1,
"supportRichMedia":1,
"oemCode":"7128"
}
}
返回参数说明:
参数名 | 说明 |
---|---|
errorCode | 错误类型,见返回码 |
failureDetails | 错误描述 |
macAddr | 设备Mac地址 |
userId | 用户id |
username | 用户设置的设备用户名 |
password | 用户设置的设备密码 |
deviceName | 设备名称 |
productName | 机型名称 |
hasusertag | 推送支持参数,0不支持推送,1写入失败(支持)2写入成功(支持) |
supportStore | 支持云存储,0不支持,1支持 |
supportRichMedia | 支持富媒体推送,0不支持,1支持 |
oemCode | 设备所属厂商oem码 |
错误码说明:
基础返回码 | 说明 |
---|---|
FC_SERVICE_NOT_IMPLEMENT(009999) | 该api不存在或者未实现 |
FC_INVALID_PARAMETER(000006) | 请求参数错误 |
FC_SYSTEM_ERROR(000099) | 系统错误 |
业务返回码 | 说明 |
FC_AUTH_APPKEY_NOT_EXISTS(030010) | AppKey不存在 |
FC_AUTH_APPSECRET_NOT_MATCH(030020) | AppSecrect不匹配 |
FC_AUTH_OPENID_NOT_EXISTS(030030) | openId不存在 |
FC_AUTH_TOKEN_NOT_EXISTS(030091) | token不存在 |
FC_AUTH_OPENID_NOT_MATCH(030031) | openId不匹配 |
FC_AUTH_ACCESSTOKEN_NOT_MATCH(030040) | accessToken不匹配 |
FC_AUTH_ACCESSTOKEN_EXPIRED(030041) | accessToken过期 |
FC_ACCOUNT_USER_IPC_SETTING_NOT_EXISTS(020041) | user ipcsetting not exists(设备不存在) |
3.1.6 解绑设备
接口描述:
- 通过mac及验签对设备进行解绑操作
请求URL:
- https://{host}/gateway?service=user_ipc_setting_v2_0.delOemDeviceForce
请求方式:
- POST
请求头:
- 无 |
请求参数:
参数名 | 数据类型 | 是否必须 | 说明 |
---|---|---|---|
mac | String | 必选 | 设备mac地址 |
timeStamp | String | 必选 | unix时间戳 |
oemCode | String | 必选 | oemCode |
sign | String | 必选 | 验签,Md5(mac+timeStamp+delKey),其中的delKey为每个oem厂商有且只有一个对应的key |
返回示例:
{
"errorCode":""
}
返回参数说明:
参数名 | 说明 |
---|---|
errorCode | 错误类型,见返回码 |
错误码说明:
基础返回码 | 说明 |
---|---|
FC_SERVICE_NOT_IMPLEMENT(009999) | 该api不存在或者未实现 |
FC_INVALID_PARAMETER(000006) | 请求参数错误 |
FC_SYSTEM_ERROR(000099) | 系统错误 |
3.2 服务激活与授权
3.2.1 查询用户未激活授权记录
接口描述:
- 查询用户所有未激活的授权记录
请求URL:
- https://{HOST}/gateway?service=permission.query_user_not_active
请求方式:
- GET
请求头:
- 无
请求参数:
参数名 | 数据类型 | 是否必须 | 说明 | 长度 |
---|---|---|---|---|
clientId | String | 必选 | appKey | 40 |
openId | String | 必选 | openId(用户标志) | 40 |
accessToken | String | 必选 | accessToken | 40 |
supportBpi | int | 必选 | 是否支持Bpi:0不支持 1支持 | 1 |
返回示例:
{
"errorCode":"",
"data":[
{
"grantId":222222,
"ipcMac":"ipcMac",
"permissionCode":"permissionCode",
"permissionName":"permissionName",
"permissionType":1,
"permissionValue":0,
"grantStatus":1,
"userTag":"userTag",
"streamId":"streamId",
"belongServer":"belongServer",
"initTime":1565847960000,
"channelCount":0
},
{
"grantId":111111,
"ipcMac":"ipcMac",
"permissionCode":"permissionCode",
"permissionName":"permissionName",
"permissionType":1,
"permissionValue":0,
"grantStatus":1,
"userTag":"userTag",
"belongServer":"belongServer",
"initTime":1565847960000,
"channelCount":0
}
],
"sysDate":1576289329443
}
返回参数说明:
参数名 | 说明 |
---|---|
errorCode | 错误码,成功时为空值 |
failureDetails | 失败原因 |
data | 返回json对象 |
data.grantId | 授权记录id |
data.ipcMac | 设备mac |
data.permissionCode | 权限代码 |
data.permissionName | 权限名称 |
data.permissionType | 1, 服务授权类型,1付费,2赠送,3免费 |
data.grantStatus | 权限状态, 1, 权限状态,为支付完成,等待服务激活中, 该服务需要先将设备激活;.3为授权成功 |
data.usreTag | 用户对应服务的tag |
data.streamId | 云存储流ID |
data.belongServer | 基础服务代号 |
data.initTime | 服务购买时间 |
sysDate | 系统时间, 1970到现在的秒数 |
错误码说明:
基础返回码 | 说明 |
---|---|
FC_SERVICE_NOT_IMPLEMENT(009999) | 该api不存在或者未实现 |
FC_INVALID_PARAMETER(000006) | 请求参数错误 |
FC_SYSTEM_ERROR(000099) | 系统错误 |
3.2.2 激活权限
接口描述:
- 激活设备单个权限
请求URL:
- https://{HOST}/gateway?service=permission.active
请求方式:
- POST
请求头:
名称 | 是否必须 | 类型 | 说明 |
---|---|---|---|
Content-Type | 是 | string | 请求类型: application/x-www-form-urlencoded |
请求参数:
参数名 | 数据类型 | 是否必须 | 说明 | 长度 |
---|---|---|---|---|
clientId | String | 必选 | appKey | 40 |
openId | String | 必选 | openId(用户标志) | 40 |
accessToken | String | 必选 | accessToken | 40 |
grantId | long | 必选 | 授权记录号,通过查询订单未激活授权记录接口获得 | 20 |
ipcMac | String | 必选 | 设备mac地址 | 20 |
exceptionInfo | String | 可选 | 异常信息 | 1024 |
appClientVersion | String | 可选 | APP版本信息 | 50 |
返回示例:
{
"errorCode":"",
"failureDetails":""
}
返回参数说明:
参数名 | 说明 |
---|---|
errorCode | 错误码,成功时为空值 |
failureDetails | 失败原因 |
错误码说明:
基础返回码 | 说明 |
---|---|
FC_SERVICE_NOT_IMPLEMENT(009999) | 该api不存在或者未实现 |
FC_INVALID_PARAMETER(000006) | 请求参数错误 |
FC_SYSTEM_ERROR(000099) | 系统错误 |
业务返回码 | 说明 |
PERMISSION_GRANTID_RECORD_NOT_EXISTS(883202) | 授权记录不存在 |
PERMISSION_GRANTID_RECORD_NOT_MATCH_IPCMAC(883204) | 授权记录与IPC不匹配 |
PERMISSION_GRANT_STATUS_CANNOT_ACTIVE(883203) | 该授权记录状态不正确,不允许激活 |
3.2.3 获取用户设备当前服务信息
接口描述:
- 获取用户设备当前服务信息
请求URL:
- https://{HOST}/gateway?service=fcmall.get_current_service
请求方式:
- GET
请求头:
- 无
请求参数:
参数名 | 数据类型 | 是否必须 | 说明 | 长度 |
---|---|---|---|---|
clientId | String | 必选 | appKey | 40 |
openId | String | 必选 | openId(用户标志) | 40 |
accessToken | String | 必选 | accessToken | 40 |
macAddr | String | 必选 | 设备Mac地址(唯一标识) | 20 |
返回示例:
{
"errorCode":"",
"data":{
"userId":111111,
"macAddr":"macAddr",
"name":"3 days per year",
"description":"3 Day Cloud Storage",
"startTime":1521093393000,
"endTime":1552629393000,
"validity":"12 Months",
"status":3,
"flag":1
}
}
返回参数说明:
参数名 | 说明 |
---|---|
userId | 用户id |
macAddr | 设备mac |
name | 服务名称 |
description | 服务描述 |
startTime | 服务开始时间【可能为空】 |
endTime | 服务结束时间【可能为空】 |
validity | 服务时长 |
status | 服务状态:0没有服务 1授权失败 2未激活 3激活成功 4.可激活免费服务 |
flag | 标识:1 正常套餐 |
errorCode | 错误码 |
failureDetails | 失败原因 |
错误码说明:
基础返回码 | 说明 |
---|---|
FC_SERVICE_NOT_IMPLEMENT(009999) | 该api不存在或者未实现 |
FC_INVALID_PARAMETER(000006) | 请求参数错误 |
FC_SYSTEM_ERROR(000099) | 系统错误 |
3.2.4 查询用户所有设备的有效的的授权记录
接口描述:
- 查询用户所有设备的有效的的授权记录
请求URL:
- https://{HOST}/gateway?service=permission.query_user_ipcs_valid
请求方式:
- GET
请求头:
- 无
请求参数:
参数名 | 数据类型 | 是否必须 | 说明 | 长度 |
---|---|---|---|---|
clientId | String | 必选 | appKey | 40 |
openId | String | 必选 | openId(用户标志) | 40 |
accessToken | String | 必选 | accessToken | 40 |
返回示例:
{
"errorCode":"",
"data":[
{
"grantId":222222,
"ipcMac":"ipcMac",
"permissionCode":"permissionCode",
"permissionName":"permissionName",
"permissionType":1,
"permissionValue":0,
"grantStatus":1,
"userTag":"userTag",
"streamId":"streamId",
"belongServer":"belongServer",
"initTime":1565847960000,
"channelCount":0
},
{
"grantId":111111,
"ipcMac":"ipcMac",
"permissionCode":"permissionCode",
"permissionName":"permissionName",
"permissionType":1,
"permissionValue":0,
"grantStatus":1,
"userTag":"userTag",
"belongServer":"belongServer",
"initTime":1565847960000,
"channelCount":0
}
],
"sysDate":1576289329443
}
返回参数说明:
参数名 | 说明 |
---|---|
errorCode | 错误码,成功时为空值 |
failureDetails | 失败原因 |
data | 返回json对象 |
data.grantId | 授权记录id |
data.ipcMac | 设备mac |
data.permissionCode | 权限代码 |
data.permissionName | 权限名称 |
data.permissionType | 1, 服务授权类型,1付费,2赠送,3免费 |
data.grantStatus | 权限状态, 1, 权限状态,为支付完成,等待服务激活中, 该服务需要先将设备激活;.3为授权成功 |
data.usreTag | 用户对应服务的tag |
data.streamId | 云存储流ID |
data.belongServer | 基础服务代号 |
data.initTime | 服务购买时间 |
sysDate | 系统时间, 1970到现在的秒数 |
错误码说明:
基础返回码 | 说明 |
---|---|
FC_SERVICE_NOT_IMPLEMENT(009999) | 该api不存在或者未实现 |
FC_INVALID_PARAMETER(000006) | 请求参数错误 |
FC_SYSTEM_ERROR(000099) | 系统错误 |
3.3 云存储与直播
3.3.1 基础子服务信息查询
接口描述:
- 查询用户子服务信息,对于一个用户所返回的数据是固定的,用户只要查询一次即可
请求URL:
- https://{HOST}/gateway?service=center.getServerInfo
请求方式:
- GET
请求头:
- 无
请求参数:
参数名 | 数据类型 | 是否必须 | 说明 | 长度 |
---|---|---|---|---|
clientId | String | 必选 | appKey | 40 |
openId | String | 必选 | openId(用户标志) | 40 |
accessToken | String | 必选 | accessToken | 40 |
oemCode | String | 必选 | oem厂商信息 | 20 |
返回示例:
{
"errorCode":"",
"data":{
"userId":111111,
"subtoken":"subtoken",
"area":"NA",
"tag":"tag",
"storeTag":"storeTag",
"alexaTag":"alexaTag",
"sendMsgUrl":"sendMsgUrl",
"sendMsgUrlSecure":"sendMsgUrlSecure",
"url":"url",
"storeUrl":"storeUrl",
"alexaUrl":"alexaUrl",
"channelCount":0
}
}
返回参数说明:
参数名 | 说明 |
---|---|
errorCode | 错误码,成功时为空值 |
failureDetails | 失败原因 |
data | 返回json对象 |
data.userId | 用户id |
data.subtoken | 用户token |
data.url | 推送业务查询服务地址 |
data.sendMsgUrl | 推送接收消息服务http地址 |
data.sendMsgUrlSecure | 推送接收消息服务https地址 |
data.storeUrl | 云存储接入服务地址 |
data.alexaUrl | Alexa基础服务接入地址 |
data.tag | 用户推送tag |
data.storeTag | 用户云存储tag |
data.alexaTag | 用户Alexa tag |
data.area | 用户所属区域 |
错误码说明:
基础返回码 | 说明 |
---|---|
FC_SERVICE_NOT_IMPLEMENT(009999) | 该api不存在或者未实现 |
FC_INVALID_PARAMETER(000006) | 请求参数错误 |
FC_SYSTEM_ERROR(000099) | 系统错误 |
业务返回码 | 说明 |
FC_SYSTEM_ADDRESS_CHANGE,000077) | 表示调度中心的地址已变更,将会返回新的服务地址,字段为server_url |
FC_SYSTEM_UPGRADE(000066)) | 表示系统升级中,定期轮询(5分钟一次) |
3.3.2 APP查询存在录像日期列表
接口描述:
- App查询设备存在录像的时间, 此处HOST是基础子服务信息查询接口结果中的storeUrl地址;
请求URL:
- https://{HOST}/stream?service=record.date.query
请求方式:
- GET
请求头:
- 无
请求参数:
参数名 | 数据类型 | 是否必须 | 说明 | 长度 |
---|---|---|---|---|
devId | String | 必选 | 设备mac | |
sessionToken | String | 必选 | userToken(subtoken+timestamp)进行MD5编码 | |
timestamp | String | 必选 | 时间戳,必须大于当前时间 |
返回示例:
{
"dateList":[
"20190330T190000",
"20190331T210000",
"20190331T190000",
"20190330T220000",
"20190331T000000",
"20190401T180000",
"20190401T000000"
],
"errorCode":"",
"failureDetails":""
}
返回参数说明:
参数名 | 说明 |
---|---|
errorCode | 错误码,成功时为空值 |
failureDetails | 失败原因 |
dataList | 日期列表 |
3.3.3 APP获取录像时间
接口描述:
- App通过起止时间获取该时间段内的所有视频片段的起止时间,此处HOST是基础子服务信息查询接口结果中的storeUrl地址;;
请求URL:
- https://{HOST}/stream?service=record.query
请求方式:
- GET
请求头:
- 无
请求参数:
参数名 | 数据类型 | 是否必须 | 说明 |
---|---|---|---|
devId | String | 必选 | 设备mac |
sessionToken | String | 必选 | userToken[ph_user_dispatch_info.subtoken]+timestamp进行MD5编码 |
recordEt | String | 必选 | 查询录像结束时间 |
recordSt | String | 必选 | 查询录像开始时间 |
timestamp | String | 必选 | 时间戳,必须大于当前时间 |
version | String | 必选 | 版本号 |
返回示例:
{
"errorCode":"",
"failureDetails":"",
"recordList":[
[
"1554160661",
"1554160702",
"2"
],
[
"1554160794",
"1554160913",
"2"
],
[
"1554161090",
"1554161145",
"2"
],
[
"1554161801",
"1554161851",
"2"
],
[
"1554162015",
"1554162054",
"2"
],
[
"1554162067",
"1554162129",
"2"
]
]
}
返回参数说明:
参数名 | 说明 |
---|---|
errorCode | 错误码,成功时为空值 |
failureDetails | 失败原因 |
recordList | 录像列表 |
错误码说明:
基础返回码 | 说明 |
---|---|
FC_SERVICE_NOT_IMPLEMENT(009999) | 该api不存在或者未实现 |
FC_INVALID_PARAMETER(000006) | 请求参数错误 |
FC_SYSTEM_ERROR(000099) | 系统错误 |
3.3.4 App获取播放录像地址
接口描述:
- App获取录像地址,此处HOST是基础子服务信息查询接口结果中的storeUrl地址;;
请求URL:
- https://{HOST}/ stream?service=record.play
请求方式:
- GET
请求头:
- 无
请求参数:
参数名 | 数据类型 | 是否必须 | 说明 |
---|---|---|---|
devId | String | 必选 | 设备mac |
sessionToken | String | 必选 | userToken[ph_user_dispatch_info.subtoken]+timestamp进行MD5编码 |
recordSt | String | 必选 | 查询录像开始时间 |
timestamp | String | 必选 | 时间戳,必须大于当前时间 |
version | String | 必选 | 版本号 |
返回示例:
{
"errorCode":"",
"failureDetails":"",
"recordUrl":"http://plb-test.myfoscam.com:8100/hls/362d96836ef005eee0460033724fd26c6164406E4B7E409D8E/2019/03/12/718a9039b6b56451_155341.m3u8?timerange=1552377221-1552377230&expires=1552381960&urlVersion=&sign=544ff805a697a373f65c603987db2404&storageType=BPI&oemCode=",
"secureUrl":"https://plb-test.myfoscam.com:443/hls/362d96836ef005eee0460033724fd26c6164406E4B7E409D8E/2019/03/12/718a9039b6b56451_155341.m3u8?timerange=1552377221-1552377230&expires=1552381960&urlVersion=&sign=544ff805a697a373f65c603987db2404&storageType=BPI&oemCode=&se=1"
}
返回参数说明:
参数名 | 说明 |
---|---|
errorCode | 错误码,成功时为空值 |
failureDetails | 失败原因 |
错误码说明:
基础返回码 | 说明 |
---|---|
FC_SERVICE_NOT_IMPLEMENT(009999) | 该api不存在或者未实现 |
FC_INVALID_PARAMETER(000006) | 请求参数错误 |
FC_SYSTEM_ERROR(000099) | 系统错误 |
3.4 其他
3.4.1 服务器时间查询
接口描述:
- 爱为服务器时间查询
请求URL:
- https://{HOST}/gateway?service=cloud_system.current_time
请求方式:
- GET
请求头:
- 无
请求参数:
- 无
返回示例:
{
"errorCode":"",
"data":1576481002262
}
返回参数说明:
参数名 | 说明 |
---|---|
errorCode | 错误码,成功时为空值 |
failureDetails | 失败原因 |
data | 服务器时间【毫秒】 |
错误码说明:
基础返回码 | 说明 |
---|---|
FC_SERVICE_NOT_IMPLEMENT(009999) | 该api不存在或者未实现 |
FC_INVALID_PARAMETER(000006) | 请求参数错误 |
FC_SYSTEM_ERROR(000099) | 系统错误 |
3.5 固件升级
3.5.1 根据机型名称获取最新版本固件(IPC)
接口描述:
- 根据机型名称获取最新版本固件
请求URL:
- https://{HOST}/gateway?service=firmware.latest
请求方式:
- GET
请求头:
- 无
请求参数:
参数名 | 数据类型 | 是否必须 | 说明 |
---|---|---|---|
clientId | String | 必选 | appKey |
openId | String | 必选 | openId(用户标志) |
accessToken | String | 必选 | accessToken |
macAddr | String | 必填 | 设备mac |
machineTypeName | String | 必填 | 机型名称,长度(0,50] |
sysVersion1 | int | 必填 | 系统固件版本1 |
sysVersion3 | int | 必填 | 系统固件版本3 |
sysVersion4 | int | 必填 | 系统固件版本4 |
appVersion1 | int | 必填 | 应用固件版本1 |
appVersion3 | int | 必填 | 应用固件版本3 |
appVersion4 | int | 必填 | 应用固件版本4 |
patchVersion | int | 可选 | 补丁版本号 |
oemCode | String | 可选 | oem厂商编号 |
返回示例:
{
"errorCode":"",
"firmwareList":[
{
"id":135,
"name":"FosIPC_J_app_ver2.x.2.77MZS4010",
"desc":"{"zh":"FosIPC_J_app_ver2.x.2.77MZS4010"}",
"uploadUtilName":"aws-s3",
"backupUploadUtilName":"local-disk",
"path":"/firmware/test/FosIPC_J_app_ver2.x.2.77MZS4010--1576569091241.bin",
"downloadUri":"http://test-download.myfoscam.com:9001/firmware/test/FosIPC_J_app_ver2.x.2.77MZS4010--1576569091241.bin",
"backupUri":"http://test-download.myfoscam.com:9001/firmware/test/FosIPC_J_app_ver2.x.2.77MZS4010--1576569091241.bin",
"md5":"24AD9165B11ECB633901BC7F3B412D7F",
"type":2,
"interim":false,
"version1":2,
"version2":"x",
"version3":2,
"version4":77,
"patchVersion":0,
"createTime":1576569118000,
"seqNo":4,
"newest":true,
"active":true,
"remind":1,
"remindActive":false,
"firmwarePlatform":"Mstar",
"productTypeId":1,
"winPluginId":176,
"macOsPluginId":177
}
],
"remind":1
}
返回参数说明:
参数名 | 说明 |
---|---|
errorCode | 错误码,成功时为空值 |
failureDetails | 失败原因 |
firmwareList | 固件升级对象 |
firmwareList.id | 固件唯一主键标志 |
firmwareList.desc | 固件描述json对象,支持多语言,zh中文,en英文 |
firmwareList.downloadUri | 固件下载地址 |
firmwareList.md5 | 固件MD5值 |
firmwareList.type | 固件类型 |
firmwareList.version1 | 固件版本第1位 |
firmwareList.version2 | 固件版本第2位 |
firmwareList.version3 | 固件版本第3位 |
firmwareList.version4 | 固件版本第4位 |
firmwareList.patchVersion | 固件补丁版本 |
firmwareList.createTime | 固件创建时间 |
错误码说明:
基础返回码 | 说明 |
---|---|
FC_AUTH_APPKEY_NOT_EXISTS(030010) | appkey not exists |
FC_AUTH_APPSECRET_NOT_MATCH(030020) | appsecret not match appkey |
FC_AUTH_OPENID_NOT_EXISTS(030030) | openid not exists |
FC_AUTH_OPENID_NOT_MATCH(030031) | openid not match appkey |
FC_AUTH_ACCESSTOKEN_NOT_MATCH(030040) | accesstoken not match openid |
FC_AUTH_ACCESSTOKEN_EXPIRED(030041) | accesstoken expired |
FC_PARAMETER_EMPTY(000005) | 参数为空 |
FC_INVALID_PARAMETER(000006) | 无效参数 |
FC_SQLEXCEPTION(003301) | SQL异常 |
FC_SYSTEM_ERROR(000099) | 系统错误 |
业务返回码 | 说明 |
PT_FIRMWARE_VERSION_INVALID,010026) | 版本号无效 |
PT_FIRMWARE_LINK_NOT_EXISTS,010120) | 该机型不存在固件升级链 |
PT_FIRMWARE_NOT_SUPPORT_UPGRADE,010121) | 不支持智能升级 |