HC 物联网系统对接协议

HC 物联网系统对接协议

说明

代码:https://gitee.com/java110/MicroCommunityThings

官网:http://www.homecommunity.cn/

开发前必读

协议规范设计

第三方调用开放接口时,需使用 https 协议、Json 数据格式、UTF8 编码

注:建议封装统一的 API 请求接口,便于进行 token 容错处理,以及相关日志打
印等

请求参数:默认使用 json 方式(access_token 必须传至http header 中)

通用响应报文格式:

   {
   
   "code":0,
   "msg":"返回码描述内容",
   "data": {
   }
   }

通用响应报文字段说明:

名称 类型 描述
code Integer 返回码
msg String 对返回码的文本描述内容
data Object 返回数据(部分接口无返回数据)

通用错误码说明

状态 描述
0 成功
-1 失败

授权认证-获取access_token

根据 appId+appSecret 换取 access_token。access_token 是平台全局接口的唯一凭证,调用其他接口均需传 access_token
参数到Http header 中 如 access_token 12312312。

请求方式:GET

请求地址: /extApi/auth/getAccessToken?appId=APPID&appSecret=APPSECRET

注:此处标注大写的单词 APPID 和 APPSECRET,为需要替换的变量,根据实际获取值更新。其它接口也采用相同的标注,不
再说明。

请求参数:

名称 类型 是否必填 示例值 描述
appId String 2fe1465ce30f4bc1b71978d42349c6 APPID
appSecret String 2fe1465ce30f4bc1b71978d42349c2 APP 秘钥

响应参数:

名称 类型 示例值 描述
access_token String 2fe1465ce30f4bc1b71978d42349c6 accessToken 访问凭据
expires_in Integer 7200 过期时间为 7200 秒,即 2 小时

响应示例:

    {
   
        "code":0,
        "msg":"成功",
        "data":{
   
            "access_token": "225262e8b548b77f76f018d218291647",
            "expires_in": 7200
            }
    }

参考代码:

    //@Java110Synchronized 为分布式全局锁 根据 实际替换为自己的全局锁代码
    @Java110Synchronized(value = "hc_get_token")
    public static String get(RestTemplate restTemplate,boolean refreshAccessToken) {
   
        //先从缓存中获取是否存在access_token
        String token = CommonCache.getValue(IotConstant.HC_TOKEN);
        if (!StringUtil.isEmpty(token) && !refreshAccessToken) {
   
            return token;
        }
        HttpHeaders headers = new HttpHeaders();
        HttpEntity httpEntity = new HttpEntity(headers);
        String url = IotConstant.getUrl(IotConstant.GET_TOKEN_URL.replace("APP_ID", IotConstant.getAppId()).replace("APP_SECRET", IotConstant.getAppSecret()));
        ResponseEntity<String> tokenRes = restTemplate.exchange(url, HttpMethod.GET, httpEntity, String.class);

        if (tokenRes.getStatusCode() != HttpStatus.OK) {
   
            throw new IllegalArgumentException("获取token失败" + tokenRes.getBody());
        }
        JSONObject tokenObj = JSONObject.parseObject(tokenRes.getBody());

        if (!tokenObj.containsKey("code") || ResultVo.CODE_OK != tokenObj.getInteger("code")) {
   
            throw new IllegalArgumentException
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值