真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

物聯(lián)網(wǎng)接口規(guī)范的方法是什么

這篇文章主要講解了“物聯(lián)網(wǎng)接口規(guī)范的方法是什么”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來(lái)研究和學(xué)習(xí)“物聯(lián)網(wǎng)接口規(guī)范的方法是什么”吧!

創(chuàng)新互聯(lián)公司專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè)、永善網(wǎng)絡(luò)推廣、微信小程序開(kāi)發(fā)、永善網(wǎng)絡(luò)營(yíng)銷、永善企業(yè)策劃、永善品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運(yùn)營(yíng)等,從售前售中售后,我們都將竭誠(chéng)為您服務(wù),您的肯定,是我們最大的嘉獎(jiǎng);創(chuàng)新互聯(lián)公司為所有大學(xué)生創(chuàng)業(yè)者提供永善建站搭建服務(wù),24小時(shí)服務(wù)熱線:13518219792,官方網(wǎng)址:www.cdcxhl.com

一、開(kāi)發(fā)流程

  1. 注冊(cè)開(kāi)發(fā)者賬號(hào)。

  2. 云開(kāi)發(fā)創(chuàng)建云應(yīng)用項(xiàng)目,獲取 client_id & secret。

說(shuō)明:開(kāi)發(fā)者平臺(tái) key 的名稱為 accessId & accessKey。

  1. 創(chuàng)建 SDK:在涂鴉 IoT 平臺(tái),選擇 App工作臺(tái) > App SDK > 獲取SDK > 按要求填寫參數(shù) > 獲取schema(渠道標(biāo)識(shí))。

  2. 基于 OpenAPI 進(jìn)行業(yè)務(wù)開(kāi)發(fā)。

  3. 測(cè)試無(wú)誤后,開(kāi)發(fā)者自行發(fā)布。

二、授權(quán)流程

每個(gè)業(yè)務(wù) OpenAPI 都需要進(jìn)行 token 校驗(yàn)。

說(shuō)明:涂鴉 OpenAPI 遵循 OAuth 2.0 協(xié)議標(biāo)準(zhǔn)。

三、簡(jiǎn)單模式

針對(duì)云云對(duì)接場(chǎng)景,涂鴉提供了隱式授權(quán)的方式獲取:

物聯(lián)網(wǎng)接口規(guī)范的方法是什么

  1. 按照涂鴉云 OpenAPI 接口規(guī)范對(duì)開(kāi)發(fā)者 client_id 和 secret 進(jìn)行簽名認(rèn)證。

  2. 涂鴉云校驗(yàn)并頒發(fā)令牌給第三方云。

說(shuō)明:隱式授權(quán)方式獲取的 token,權(quán)限維度為開(kāi)發(fā)者維度,token 的操作權(quán)限范圍為該開(kāi)發(fā)者有權(quán)限操作的范圍,例如操作(增、刪、改、查)開(kāi)發(fā)者的應(yīng)用用戶數(shù)據(jù),產(chǎn)品下的設(shè)備數(shù)據(jù)和應(yīng)用下用戶綁定的設(shè)備數(shù)據(jù)。

四、接口規(guī)范

環(huán)境說(shuō)明

各接口使用方請(qǐng)根據(jù)自身所在區(qū)域調(diào)用相應(yīng)接口。

中國(guó)區(qū) https://openapi.tuyacn.com

美洲區(qū) https://openapi.tuyaus.com

歐洲區(qū) https://openapi.tuyaeu.com

印度區(qū) https://openapi.tuyain.com

請(qǐng)求方式

支持的請(qǐng)求方式如下:

  • GET

  • PUT

  • POST

  • DELETE

說(shuō)明:當(dāng)請(qǐng)求方式為POST時(shí),Content-Type 需使用application/json。

請(qǐng)求頭設(shè)置

任意接口都需要在 header 中加入如下參數(shù):

說(shuō)明:業(yè)務(wù)接口(非 token 接口)請(qǐng)求時(shí)需要參數(shù)access_token。

五、簽名規(guī)范

涂鴉云采用 HMAC-SHA256 創(chuàng)建摘要,根據(jù)不同應(yīng)用場(chǎng)景,當(dāng)前提供兩套簽名算法:

  • 令牌管理接口(獲取令牌、刷新令牌)

sign = HMAC-SHA256(client_id + t, secret).toUpperCase()

使用申請(qǐng)到的 client_id 與當(dāng)前請(qǐng)求的 13 位標(biāo)準(zhǔn)時(shí)間戳拼接成待簽名的字符串,采用申請(qǐng)到的云應(yīng)用 secret 作為密鑰參與哈希摘要,得到的字符串,最后轉(zhuǎn)大寫;

  • 業(yè)務(wù)接口

sign = HMAC-SHA256(client_id + access_token + t, secret).toUpperCase()

使用申請(qǐng)到的云應(yīng)用 client_id + 當(dāng)前有效的請(qǐng)求令牌 + 當(dāng)前請(qǐng)求的 13 位標(biāo)準(zhǔn)時(shí)間戳拼接成待簽名的字符串,采用申請(qǐng)到的云應(yīng)用 secret 作為密鑰參與哈希摘要,得到的字符串,最后轉(zhuǎn)大寫。

簽名示例

  • 準(zhǔn)備參數(shù):

client_id:1KAD46OrT9HafiKdsXeg

secret:4OHBOnWOqaEC1mWXOpVL3yV50s0qGSRC

t:1588925778000

access_token:3f4eda2bdec17232f67c0b188af3eec1

  • 令牌管理接口簽名:

待簽名字符串:1KAD46OrT9HafiKdsXeg1588925778000

簽名結(jié)果:HMAC-SHA256(1KAD46OrT9HafiKdsXeg1588925778000,4OHBOnWOqaEC1mWXOpVL3yV50s0qGSRC)

ceaafb5ccdc2f723a9fd3e91d3d2238ee0dd9a6d7c3c365deb50fc2af277aa83

轉(zhuǎn)大寫為:CEAAFB5CCDC2F723A9FD3E91D3D2238EE0DD9A6D7C3C365DEB50FC2AF277AA83

  • 業(yè)務(wù)接口:

待簽名字符串:1KAD46OrT9HafiKdsXeg3f4eda2bdec17232f67c0b188af3eec11588925778000

簽名結(jié)果:HMAC-SHA256(1KAD46OrT9HafiKdsXeg3f4eda2bdec17232f67c0b188af3eec11588925778000,4OHBOnWOqaEC1mWXOpVL3yV50s0qGSRC)

36c30e300f226b68add014dd1ef56a81edb7b7a817840485769b9d6c96d0faa1

轉(zhuǎn)大寫為:36C30E300F226B68ADD014DD1EF56A81EDB7B7A817840485769B9D6C96D0FAA1

  • 各類語(yǔ)言 HMAC SHA256 的實(shí)現(xiàn):

Javascript HMAC SHA256 

/**
Run the code online with this jsfiddle. Dependent upon an open source js library calledhttp://code.google.com/p/crypto-js/.
**/




PHP HMAC SHA256

/**
PHP has built in methods for hash_hmac (PHP 5) and base64_encode (PHP 4, PHP 5) resulting in no outside dependencies. Say what you want about PHP but they have the cleanest code for this example.
**/

$s = hash_hmac('sha256', 'Message', 'secret', true);
echo strtoupper(var_dump($s));

Java HMAC SHA256

/**
Dependent on Apache Commons Codec to encode in base64.
**/

import javax.crypto.Mac;
import javax.crypto.spec.SecretKeySpec;
import org.apache.commons.codec.binary.Base64;

public class ApiSecurityExample {
  public static void main(String[] args) {
    try {
     String secret = "secret";
     String message = "Message";

     Mac sha256_HMAC = Mac.getInstance("HmacSHA256");
     SecretKeySpec secret_key = new SecretKeySpec(secret.getBytes(), "HmacSHA256");
     sha256_HMAC.init(secret_key);

      byte[] bytes = sha256_HMAC.doFinal(message.getBytes());
     String hash = new HexBinaryAdapter().marshal(bytes).toUpperCase();
     System.out.println(hash);
    }
    catch (Exception e){
     System.out.println("Error");
    }
   }
}

 C# HMAC SHA256

using System;
using System.Security.Cryptography;

namespace Test
{
  public class MyHmac
  {
    public static string Encrypt(string message, string secret)
            {
                secret = secret ?? "";
                var encoding = new System.Text.UTF8Encoding();
                byte[] keyByte = encoding.GetBytes(secret);
                byte[] messageBytes = encoding.GetBytes(message);
                using (var hmacsha256 = new HMACSHA256(keyByte))
                {
                    byte[] hashmessage = hmacsha256.ComputeHash(messageBytes);
                    StringBuilder builder = new StringBuilder();
                    for (int i = 0; i < hashmessage.Length; i++)
                    {
                        builder.Append(hashmessage[i].ToString("x2"));
                    }
                    return builder.ToString().ToUpper();
                }
            }
  }
}

返回結(jié)果 統(tǒng)一返回 JSON,一般格式如下:

請(qǐng)求成功

{
    "success": true,
    "result": {
        //object
    }
}

請(qǐng)求異常

{
    "success": false,
    "code": 1010,
    "msg": "token非法"
}

六、集成 SDKJava概述

目前提供的基于Java 的 Tuya Cloud SDK 封裝了 token 相關(guān)、用戶相關(guān)以及設(shè)備相關(guān)的接口,以便加速云云對(duì)接的開(kāi)發(fā)。

開(kāi)發(fā)者只需要關(guān)注所使用的業(yè)務(wù)功能方法的調(diào)用,構(gòu)建對(duì)應(yīng)的 TuyaClient 實(shí)例,實(shí)例會(huì)自動(dòng)更新 token 以及完成對(duì)應(yīng) API 的調(diào)用。SDK 主要包括了以下功能, 詳細(xì)接口信息請(qǐng)參考后文對(duì)應(yīng)模塊:

token 相關(guān)(無(wú)需用戶調(diào)用)

用戶相關(guān)(獲取用戶列表、注冊(cè)用戶、獲取用戶下的設(shè)備列表)

設(shè)備相關(guān)(獲取設(shè)備配網(wǎng) token、獲取配網(wǎng) token 下所有設(shè)備列表等接口)

集成 SDK

IDEA 導(dǎo)入 jar 包

Eclipse 導(dǎo)入 jar 包

通用模塊

由于部分新增接口無(wú)法及時(shí)同步集成至 SDK,開(kāi)發(fā)者可通過(guò) SDK 通用接口進(jìn)行水平擴(kuò)展?jié)M足開(kāi)發(fā)。

獲取 Header 列表:

/**
 * 獲取Header列表
 * @param isToken 是否是token相關(guān)請(qǐng)求,一般是false
 * @return
 */
public List
 getHeaders(Boolean isToken)

萬(wàn)能涂鴉接口:

/**
 * 萬(wàn)能涂鴉接口
 * @param url
 * @param method 請(qǐng)求類型(例如:GET)
 * @param headers 請(qǐng)求頭內(nèi)容(額外新增的header)
 * @param body
 * @return
 */
public String commonHttpRequest(String url, HttpMethod method, Map headers, Object body)

調(diào)用示例

以下為注冊(cè)用戶的示例:

TuyaClient client = new TuyaClient(clientId, secret, RegionEnum.CN);
String uid = client.registerUser("testApp","86","18212345678", MD5Util.getMD5("123456")"nickName",UserTypeEnum.MOBLIE);
System.out.println("成功同步用戶: "+ uid);

感謝各位的閱讀,以上就是“物聯(lián)網(wǎng)接口規(guī)范的方法是什么”的內(nèi)容了,經(jīng)過(guò)本文的學(xué)習(xí)后,相信大家對(duì)物聯(lián)網(wǎng)接口規(guī)范的方法是什么這一問(wèn)題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!


分享標(biāo)題:物聯(lián)網(wǎng)接口規(guī)范的方法是什么
鏈接分享:http://weahome.cn/article/pgiceo.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部