0.2.11 • Published 6 years ago
tencent-iot-js-sdk v0.2.11
腾讯云 IoT JS SDK
这个 SDK 的目标是同时工作于以下环境:
- 小程序。使用
dist/iot_sdk.miniprogram.js
- Node.js。直接 require 此包
- 浏览器 or React Native。使用
dist/iot_sdk.browser.js
安装
$ npm i tencent-iot-js-sdk
示例
const SDK = require('tencent-iot-js-sdk')
async function main() {
const sdk = new SDK({
// 从控制台申请一个应用,会得到 AppKey
AppKey: 'xxxxxxx',
});
// 接收服务器的推送
sdk.onPush(function (data) {
console.log(`onPush %j`, data)
})
// 调用云api方法登录
let response = await sdk.callYunApi({
Action: 'AppGetToken',
ActionParams: {
UserName: 'iotappuser',
Password: 'xxxx',
}
})
// 获取登录令牌
const AccessToken = response.AccessToken
// 绑定登录令牌
sdk.bindAccessToken(AccessToken);
// 获取用户名下的设备列表
response = await sdk.callYunApi({
Action: 'AppGetDevices',
ActionParams: {
}
})
console.log(`AppGetDevices %j`, response)
}
main()
方法
constructor
AppKey
:每个app都有对应的 AppKey,在控制台的应用管理中的 secretId 就是 AppKey。一个app只能操作它有权限的产品,不能跨产品操作。
AccessToken
:登录之后服务器会返回 AccessToken,用于标记一个用户的会话。这个参数也可以后面再通过 bindAccessToken 传入。
new SDK({
AppKey: 'xxxx',
AccessToken: 'yyyyyy',
})
callYunApi(options)
options.Action
string 云方法名options.ActionParams
object 方法对应的参数options.WithAccessToken
boolean 默认true
。参考.bindAccessToken方法
Version
默认为 2018-01-23
云api的文档在:https://cloud.tencent.com/document/product/568/16436
bindAccessToken(AccessToken)
登录之后,调用这个接口绑定 AccessToken。这样在调用云api任何接口时,都会自动传 AccessToken 参数。如果需要暂时屏蔽这个特性,则在 callYunApi
时,传入 options.WithAccessToken=false
登录方式有多种,请参照 API 文档中的登录部分,并通过 callYunApi
进行登录。
activePush()
sdk 会在以下两种情况下自动绑定 websocket 与设备推送的映射关系:
- websocket 连接建立时
- bindAccessToken 时。
一般是够用的,但有些情况下,需要开发者手动调用 activePush()
来绑定:
- 用户添加了新设备时,新设备并不会与 websocket 自动绑定。
onPush(dataObj)
接收服务器推送的各种消息,通过 action 来标记不同消息类型。
目前已有的action:
DeviceChange
设备上下线状态发生改变(type=='upAndDown'
)。或设备数据发生改变(type=='dataChange'
)。这时应用应主动刷新设备状态。
action: 'DeviceChange'
当设备数据变更或者设备上下线时,
dataObj.action === 'DeviceChange'
dataObj.params
的形式为
{
type: changeType, // 'dataChange' or 'upAndDown'
time: time, // 2018-05-15 22:09:07
deviceId: deviceId, // iot-ohmfh2cs@G10A01_kit_1_222
}
license
MIT