Tuya IPC & 网关授权说明

Last Updated on : 2023-07-06 06:05:06download

您现在正在阅览的,是一篇不完全公开的文档,这表示该文档内容的适用性有一定的限制,文档或目录所描述的内容适用于旧版本 SDK、API、工具、平台等。
如果您需要更准确的技术文档,请访问 涂鸦 IoT 开发平台,然后自行搜索。

IPC 及网关授权 SDK 是基于涂鸦云和涂鸦云接口开发,用于 IPC 及网关设备的授权、授权校验。
本文共包括涂鸦网络通信库和 Demo。其中,涂鸦网络通信库用于与涂鸦云的通信。主要包括账号登录、获取授权码信息、模块授权、授权校验功能。

下载地址

目录结构

│  readme.txt
│
├─Demo
│  │  CSharpCallDemo.sln
│  │
│  └─CSharpCallDemo
│      │  Cloud.cs
│      │  CSharpCallDemo.csproj
│      │  CSharpCallDemo.csproj.user
│      │  Program.cs
│      │
│      ├─bin
│      │  └─Debug
│      ├─lib
│      │      BouncyCastle.Crypto.dll
│      │      Newtonsoft.Json.dll
│      │      TuyaCloudIfLib.dll
│      │
│      ├─obj
│      │  └─Debug
│      │      │  CSharpCallDemo.csproj.FileListAbsolute.txt
│      │      │  DesignTimeResolveAssemblyReferencesInput.cache
│      │      │
│      │      └─TempPE
│      └─Properties
│              AssemblyInfo.cs
│
└─lib
        BouncyCastle.Crypto.dll
        Newtonsoft.Json.dll
        TuyaCloudIfLib.dll

主要库介绍

涂鸦网络通信库接口总览

接口 说明
账号登录 UserLogin
获取 Token 信息 GetTokenInfo
授权 GetTokenInfo
授权有效性校验 TokenAuthValidate

授权流程

Tuya IPC & 网关授权说明

涂鸦网络通信库类

TuyaCloudIf.UserLogin

var req = new UserLoginReqParas()
{
    username = user,
    password = pwd
};
var rsp = TuyaCloudIf.UserLogin(req);
var rsp = TuyaCloudIf.UserLogin(req);

功能说明
请求登录涂鸦云并获得其它接口的访问权限。

参数说明

参数名称 类型 说明 是否可为空
req.username string 用户名
req.password string 密码

返回值

返回值 类型 说明 是否可为空
rsp.success bool 请求结果(true:成功,false:失败)
rsp.errorMsg string 失败原因,成功时为空

注意: 用户名和密码需要向涂鸦支持人员申请。

TuyaCloudIf.GetTokenInfo

var req = new GetTokenInfoReqParas()
{
    tokenId = tokenId
};
var rsp = TuyaCloudIf.GetTokenInfo(req);

功能说明
获取 Token 的相关信息。

参数说明

参数名称 类型 说明 是否可为空
req.tokenId string TokenID

返回值

返回值 类型 说明 是否可为空
rsp.success bool 请求结果(true:成功,false:失败)
rsp.errorMsg string 失败原因,成功时为空
rsp.result.fingerprint string 固件名称
rsp.result.firmwareVersion string 固件版本
rsp.result.productId string PID
rsp.result.countryCode string 国家码
rsp.result.wifiHotspotName string Wi-Fi名称
rsp.result.wifiPassword string Wi-Fi密码

注意:
TokenID 需要向涂鸦支持人员申请。

TuyaCloudIf.TokenAuth

var req = new TokenAuthReq()
{
    tokenId = tokenId,
    sn = sn,
    mac = mac,
    sftVersion = "sdk_call_cs_1.0"
};
var rsp = TuyaCloudIf.TokenAuth(req);

功能说明
对设备进行涂鸦授权。

参数说明

参数名称 类型 说明 是否可为空
req.tokenId string TokenID
req.sn string 序列号
req.mac string 设备 MAC
req.sftVersion string 调用标识

返回值

返回值 类型 说明 是否可为空
rsp.success bool 请求结果(true:成功,false:失败)
rsp.errorMsg string 失败原因,成功时为空
rsp.result.uuid string 通用唯一标示符
rsp.result.accessKey string 激活码

注意: uuid、accessKey 需要写入设备中,在设备配网连接涂鸦云认证时使用。

TuyaCloudIf.TokenAuthValidate

var req = new TokenAuthValidateReq()
{
    tokenId = tokenId,
    sn = sn,
    mac = mac,
    accessKey = accessKey,
    uuid = uuid,
    wifiHotspotName = wifi_hotspot_name,
    wifiPassword = wifi_password,
    sftVersion = "sdk_call_cs_1.0"
};
var rsp = TuyaCloudIf.TokenAuthValidate(req);

功能说明
通过上传授权信息,对设备中的授权信息进行校验。

参数说明

参数名称 类型 说明 是否可为空
req.tokenId string TokenID
req.sn string 序列号
req.mac string 设备 MAC
req.uuid string 通用唯一标示符
req.accessKey string 激活码
req.wifiHotspotName string Wi-Fi名称
req.wifiPassword string Wi-Fi密码
req.sftVersion string 调用标识

返回值

返回值 类型 说明 是否可为空
rsp.success bool 请求结果(true:成功,false:失败)
rsp.errorMsg string 失败原因,成功时为空
rsp.result.result bool 校验结果(true:成功,false:失败)

注意: 一般授权校验是在完成设备授权并将授权信息写入设备后进行,读取设备中的信息进行校验,防止信息未写入或者数据丢失。

TuyaCloudIf.TokenAuthCheck

var req = new TokenAuthCheckReq()
{
    tokenId = tokenId,
    sn = sn,
    mac = mac,
    accessKey = accessKey,
    uuid = uuid,
    wifiHotspotName = wifi_hotspot_name,
    wifiPassword = wifi_password,
    sftVersion = "sdk_call_cs_1.0"
};
var rsp = TuyaCloudIf.TokenAuthCheck(req);

功能说明
通过上传授权信息,对设备中的授权信息进行再次校验。

参数说明

参数名称 类型 说明 是否可为空
req.tokenId string TokenID
req.sn string 序列号
req.mac string 设备 MAC
req.uuid string 通用唯一标示符
req.accessKey string 激活码
req.wifiHotspotName string Wi-Fi 名称
req.wifiPassword string Wi-Fi 密码
req.sftVersion string 调用标识

返回值

返回值 类型 说明 是否可为空
rsp.success bool 请求结果(true:成功,false:失败)
rsp.errorMsg string 失败原因,成功时为空
rsp.result.result bool 校验结果(true:成功,false:失败)

注意: 一般授权二次校验是在完成设备授权后。设备断电再次上电时读取设备中的信息进行校验,防止授权信息断电丢失。