中文简体    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&param2=xxx

说明:
1.HOST指域名,测试环境域名为test-api.myfoscam.com;
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.regist_v2

请求方式:

  • POST

请求头:

名称 是否必须 类型 说明
Content-Type string 请求类型: application/x-www-form-urlencoded

请求参数:

参数名 数据类型 是否必须 说明 长度
username String 必选 账户名 50
password String 必选 账户的密码,MD5加密后再传给后台(32位小写) 50
name String 可选 用户姓名 64
address String 可选 地址 32
phoneNo String 可选 联系电话 20
country String 必选 国家(通过查询注册国家接口获取的结果中的code 10
language String 必选 CHS / ENU 10
accessType String 必选 用户接入方式(1web,2App) 1
oemCode String 必选 Oem厂商编号(必选) 20
appClientVersion String 可选 客户端版本信息 50
subscribeEdm int 可选 是否订阅EDM邮件,1订阅,2不订阅 1
needActive int 必选 参数值固定为0,账号自动激活 1
isNewAppRegister int 必选 参数值固定为1 1

返回示例:

{
    "errorCode":"",
    "failureDetails":""
}

返回参数说明:

参数名 说明
errorCode 错误类型,见返回码
failureDetails 错误描述

错误码说明:

基础返回码 说明
FC_SERVICE_NOT_IMPLEMENT(009999) 该api不存在或者未实现
FC_INVALID_PARAMETER(000006) 请求参数错误
FC_SYSTEM_ERROR(000099) 系统错误
业务返回码 说明
020012 用户名已经存在
020081 用户已经激活
002501 注册邮件发送失败

3.1.2 查询注册国家

接口描述:

  • 查询国家列表,用于注册时填写注册国家参数

请求URL:

  • https://{HOST}/gateway?service=user.get_regist_country

请求方式:

  • GET

请求头:

请求参数:

返回示例:

{
    "errorCode":"",
    "data":[
        {
            "code":"US",
            "enName":"America",
            "chName":"美国",
            "zone":"com",
            "area":"NA",
            "selectable":true
        },
        {
            "code":"AR",
            "enName":"Argentina",
            "chName":"阿根廷",
            "zone":"com",
            "area":"SA",
            "selectable":true
        },
        {
            "code":"VN",
            "enName":"Vietnam",
            "chName":"越南",
            "zone":"com",
            "area":"AS",
            "selectable":true
        }
    ]
}

返回参数说明:

参数名 说明
errorCode 错误类型,见返回码
failureDetails 错误描述
data 返回国家对象
data.code 国家代号,唯一
data.enName 国家英文名
data.chName 国家中文名
data.zone 国家所属分区,目前分区有cn与com
data.selectable 表明在此分区,该国家是否可用选择

错误码说明:

基础返回码 说明
FC_SERVICE_NOT_IMPLEMENT(009999) 该api不存在或者未实现
FC_INVALID_PARAMETER(000006) 请求参数错误
FC_SYSTEM_ERROR(000099) 系统错误

3.1.3 检查账号是否存在并且已经激活

接口描述:

  • 检查账号是否存在并且以及激活

请求URL:

  • https://{HOST}/gateway?service=user.is_username_exists

请求方式:

  • GET

请求头:

请求参数:

参数名 数据类型 是否必须 说明 长度
username String 必选 账户名 50
oemCode String 必选 Oem厂商编号(必选) 20

返回示例:

{
    "errorCode":"",
    "data":{
        "yes":true,
        "deviceNum":2,
        "country":"US"
    }
}

返回参数说明:

参数名 说明
errorCode 错误类型,见返回码
failureDetails 错误描述
yes true,存在且激活;false,不存在或者存在未激活

错误码说明:k

基础返回码 说明
FC_SERVICE_NOT_IMPLEMENT(009999) 该api不存在或者未实现
FC_INVALID_PARAMETER(000006) 请求参数错误
FC_SYSTEM_ERROR(000099) 系统错误

3.1.4 修改密码

接口描述:

  • 用户修改密码

请求URL:

  • https://{HOST}/gateway?service=user.modify_password

请求方式:

  • POST

请求头:

名称 是否必须 类型 说明
Content-Type string 请求类型: application/x-www-form-urlencoded

请求参数:

参数名 数据类型 是否必须 说明 长度
clientId String 必选 appKey 40
openId String 必选 openId(用户标志) 40
accessToken String 必选 accessToken 40
oldPassword String 必选 旧密码(md5后的值) 50
newPassword String 必选 新密码(md5后的值) 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_OPENID_NOT_MATCH(030031) openId不匹配
FC_AUTH_ACCESSTOKEN_NOT_MATCH(030040) accessToken不匹配
FC_AUTH_ACCESSTOKEN_EXPIRED(030041) accessToken过期

3.1.5 忘记密码-获取重置码Code

接口描述:

  • 用户忘记密码,发送重置码至注册邮件

请求URL:

  • https://{HOST}/gateway?service=user.gen_resetpwd_code

请求方式:

  • POST

请求头:

名称 是否必须 类型 说明
Content-Type string 请求类型: application/x-www-form-urlencoded

请求参数:

参数名 数据类型 是否必须 说明 长度
username String 必选 账户名(email) 50
language String 必选 CHS / ENU,中文或英文 10
oemCode String 必选 Oem厂商编号 20

返回示例:

{
    "errorCode":"",
    "failureDetails":""
}

返回参数说明:

参数名 说明
errorCode 错误类型,见返回码
failureDetails 错误描述

错误码说明:

基础返回码 说明
FC_SERVICE_NOT_IMPLEMENT(009999) 该api不存在或者未实现
FC_INVALID_PARAMETER(000006) 请求参数错误
FC_SYSTEM_ERROR(000099) 系统错误
业务返回码 说明
020010 username not exists
020080 user account has not be activated
002501 email send error

3.1.6 忘记密码-重置密码

接口描述:

  • 忘记密码-账号重置密码

请求URL:

  • https://{HOST}/gateway?service=user.resetpwd

请求方式:

  • POST

请求头:

名称 是否必须 类型 说明
Content-Type string 请求类型: application/x-www-form-urlencoded

请求参数:

参数名 数据类型 是否必须 说明 长度
username String 必选 账户名(email) 50
resetPasswordCode String 必选 重置码 50
newPassword 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_ACCOUNT_USERNAEM_NOT_EXISTS(020010) username not exists
FC_ACCOUNT_USER_RESET_PASSWORD_CODE_INVALID(020060) resetpwd code invalid
FC_ACCOUNT_NOT_ACTIVATED(020080) user account has not be activated
FC_ACCOUNT_USER_RESET_PASSWORD_CODE_WRONG_TOO_MANY_TIMES(020062) 一小时内输入重置密码code错误次数太多,请一个小时后再尝试

3.1.7 忘记密码-查询重置码Code是否有效

接口描述:

  • 忘记密码-查询重置码Code是否有效

请求URL:

  • https://{HOST}/gateway?service=user.is_resetpwd_code_valid

请求方式:

  • GET

请求头:

请求参数:

参数名 数据类型 是否必须 说明 长度
code String 必选 重置码 40
username String 必选 账户名(email) 50
oemCode String 必选 Oem厂商编号(必选) 20

返回示例:

{
    "errorCode":"",
    "data":{
        "yes":true
    }
}

返回参数说明:

参数名 说明
errorCode 错误类型,见返回码
failureDetails 错误描述
yes 是否有效

错误码说明:k

基础返回码 说明
FC_SERVICE_NOT_IMPLEMENT(009999) 该api不存在或者未实现
FC_INVALID_PARAMETER(000006) 请求参数错误
FC_SYSTEM_ERROR(000099) 系统错误
业务返回码 说明
FC_ACCOUNT_USER_RESET_PASSWORD_CODE_WRONG_TOO_MANY_TIMES(020062) 一小时内输入重置密码code错误次数太多,请一个小时后再尝试

3.1.8 修改密码 - by短信验证码

接口描述:

  • 修改密码 通过短信验证码, 短信验证码App本地进行校验

请求URL:

  • https://{HOST}/gateway?service=user.reset_pwd_by_sms

请求方式:

  • POST

请求头:

请求参数:

参数名 数据类型 是否必须 说明
phoneNo String 必选 账户名
oemCode String 必选 oemCode
newPassword String 必选 新密码, 经md5后的值
sign String 必选 md5( resetCode + phoneNo + newPassword + oemCode) 其中resetCode由爱为提供, newPassword为经md5后的值

返回示例:

{
    "errorCode":"",
    "data":{

    }
}

返回参数说明:

参数名 说明
errorCode 错误类型,见返回码
failureDetails 错误描述
yes 是否有效

错误码说明:k

基础返回码 说明
FC_SERVICE_NOT_IMPLEMENT(009999) 该api不存在或者未实现
FC_INVALID_PARAMETER(000006) 请求参数错误
FC_SYSTEM_ERROR(000099) 系统错误
业务返回码 说明
FC_ACCOUNT_USER_RESET_PASSWORD_CODE_WRONG_TOO_MANY_TIMES(020062) 一小时内输入重置密码code错误次数太多,请一个小时后再尝试

3.1.9 获取账号信息

接口描述:

  • 获取账号信息

请求URL:

  • https://{HOST}/gateway?service=user.get_user_info

请求方式:

  • GET

请求头:

请求参数:

参数名 数据类型 是否必须 说明 长度
clientId String 必选 appKey 40
openId String 必选 openId(用户标志) 40
accessToken String 必选 accessToken 40

返回示例:

{
    "errorCode":"",
    "data":{
        "id":111111,
        "username":"xxxxxx@xxx.com",
        "name":"xxxxxxxx",
        "nickname":"yyyyyyyy",
        "gender":2,
        "birthday":"1970-01-01",
        "phoneNo":"0755-8888888",
        "mobilePhoneNo":"13888888888",
        "country":"US",
        "ipCountry":"CN",
        "area":"NA",
        "ctime":1522567864000,
        "updateTime":1561021443000,
        "status":1,
        "type":0,
        "generalUserage":7,
        "otherUserage":"YYYYYY",
        "accessType":1,
        "betaStatus":1,
        "subscribeEdm":2
    }
}

返回参数说明:

参数名 说明
errorCode 错误类型,见返回码
failureDetails 错误描述
data 用户对象信息
data.name 用户姓名
data.address 用户地址
data.phoneNo 电话号码
data.mobilePhoneNo 手机号码
data.birthday 生日
data.gender 0:unknown,1:male,2:female
data.country 国家
data.province 省份
data.city 城市
data.ctime 创建时间
data.updateTime 更新时间
data.status 0:未激活 1已激活
data.type 0:平台账户,1:qq, 2:weibo, 3:baidu, 101:facebook
data.generalUserage 按位或存储(homeSercurity,babyMonitor,PetMonitor,StoreSecurity,OfficeSecurity)
data.otherUserage
data.subscribeEdm 1表示订阅,2表示不订阅

错误码说明:k

基础返回码 说明
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_OPENID_NOT_MATCH(030031) openId不匹配
FC_AUTH_ACCESSTOKEN_NOT_MATCH(030040) accessToken不匹配
FC_AUTH_ACCESSTOKEN_EXPIRED(030041) accessToken过期

3.1.10 修改用户信息

接口描述:

  • 修改用户信息

请求URL:

  • https://{HOST}/gateway?service=user.modify_user_info

请求方式:

  • POST

请求头:

名称 是否必须 类型 说明
Content-Type string 请求类型: application/x-www-form-urlencoded

请求参数:

参数名 数据类型 是否必须 说明 长度
clientId String 必选 appKey 40
openId String 必选 openId(用户标志) 40
accessToken String 必选 accessToken 40
address String 可选 地址(非必要参数) 50
phoneNo String 可选 联系电话(非必要参数) 32
name String 可选 Real name(非必要参数) 64
nickname String 可选 Nickname (非必要参数) 20
gender Int 可选 0:unknown,1:male,2:female(非必要参数) 1
birthday String 可选 (非必要参数)
mobilePhoneNo String 可选 (非必要参数) 20
country String 可选 (非必要参数) 32
province String 可选 (非必要参数) 32
city String 可选 (非必要参数) 32

返回示例:

{
    "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_OPENID_NOT_MATCH(030031) openId不匹配
FC_AUTH_ACCESSTOKEN_NOT_MATCH(030040) accessToken不匹配
FC_AUTH_ACCESSTOKEN_EXPIRED(030041) accessToken过期
FC_AUTH_APPKEY_NOT_EXISTS(030010) appKey不存在

3.2 授权登陆

3.2.1 用户密码授权(登录)

接口描述:

  • 登录获取clientId和accessToken等重要身份信息

请求URL:

  • https://{HOST}/gateway?service=oauth.authorize

请求方式:

  • POST

请求头:

名称 是否必须 类型 说明
Content-Type string 请求类型: application/x-www-form-urlencoded

请求参数:

参数名 数据类型 是否必须 说明 长度
username String 必选 用户名 50
password String 必选 密码,使用MD5加密 50
grantType String 必选 授权方式: password 30
clientId String 必选 开发者的AppId 40
clientSecret String 必选 开发者的密码 40
accessType int 必选 用户接入方式(1web,2app) 1
oemCode String 必选 Oem厂商编号(必选) 20
updateToken int 可选 该参数目前只有alexa第三方登录使用,值固定为1;其他登陆不需要提供此参数 1

返回示例:

{
    "errorCode":"",
    "failureDetails":"",
    "data":{
        "openId":"",
        "accessToken":"",
        "refreshToken":"",
        "expiresIn":123456,
        "username":"username",
        "userId":111111,
        "country":"US",
        "betaStatus":1
    }
}

返回参数说明:

参数名 说明
errorCode 错误类型,见返回码
failureDetails 错误描述
data 授权信息
data.openId OPENID(用户身份标示)
data.accessToken 登陆令牌
data.refreshToken 刷新令牌
data.expiresIn 登陆令牌过期时间(单位:秒)
data.usernmae 用户名
data.betaStatus 0/1,0不是灰度用户,1是灰度用户

错误码说明:

基础返回码 说明
FC_SERVICE_NOT_IMPLEMENT(009999) 该api不存在或者未实现
FC_INVALID_PARAMETER(000006) 请求参数错误
FC_SYSTEM_ERROR(000099) 系统错误
业务返回码 说明
030010 appkey not exists
030020 appsecret not match appkey
030061 password not match
030080 user account has not be activated
020101 user account was registered in zone com
020102 user account was registered in zone cn

3.2.2 身份验证

接口描述:

  • 验证身份信息,需要的验证身份参数通过用户密码授权接口获取

请求URL:

  • https://{HOST}/gateway?service=oauth.is_accesstoken_valid

请求方式:

  • POST

请求头:

名称 是否必须 类型 说明
Content-Type string 请求类型: application/x-www-form-urlencoded

请求参数:

参数名 数据类型 是否必须 说明 长度
clientId String 必选 appKey 40
openId String 必选 openId(用户标志) 40
accessToken String 必选 accessToken 40

返回示例:

{
    "errorCode":"",
    "failureDetails":"",
    "data":{
        "yes":true
    }
}

返回参数说明:

参数名 说明
errorCode 错误类型,见返回码
failureDetails 错误描述

错误码说明:

基础返回码 说明
FC_SERVICE_NOT_IMPLEMENT(009999) 该api不存在或者未实现
FC_INVALID_PARAMETER(000006) 请求参数错误
FC_SYSTEM_ERROR(000099) 系统错误
业务返回码 说明
030010 appkey not exists
030020 appsecret not match appkey
030030 openid not exists
030031 openid not match appkey
030040 accesstoken not match openid
030041 accesstoken expired

3.2.3 账号注销(退出登录or切换账号)

接口描述:

  • 注销退出当前账号

请求URL:

  • https://{HOST}/gateway?service=oauth.invalid_access_token

请求方式:

  • POST

请求头:

名称 是否必须 类型 说明
Content-Type string 请求类型: application/x-www-form-urlencoded

请求参数:

参数名 数据类型 是否必须 说明
clientId String 必选 appKey
clientSecret String 必选 clientSecret
openId String 必选 openId(用户标志)
accessToken String 必选 accessToken

返回示例:

{
    "errorCode":"",
    "failureDetails":"",
    "data":{
        "yes":true
    }
}

返回参数说明:

参数名 说明
errorCode 错误类型,见返回码
failureDetails 错误描述

错误码说明:

基础返回码 说明
FC_SERVICE_NOT_IMPLEMENT(009999) 该api不存在或者未实现
FC_INVALID_PARAMETER(000006) 请求参数错误
FC_SYSTEM_ERROR(000099) 系统错误
业务返回码 说明
030010 appkey not exists
030020 appsecret not match appkey
030030 openid not exists
030031 openid not match appkey
030040 accesstoken not match openid
030041 accesstoken expired
文档更新时间: 2021-01-08 15:26   作者:admin