npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

tuya_cloud_sdk_nodejs

v1.0.1

Published

涂鸦云 API NODEJS SDK

Downloads

4

Readme

涂鸦云云对接API SDK Nodejs版本

使用前需要做

  1. 确认nodejs版本在7.10.1及以上

  2. 在涂鸦云平台注册开发者账号,确定AccessID、AccessKey、Endpoint(调用地址)这些值

源码安装

  1. 解压源码包到您项目合适的位置。
  2. 代码中引用对应模块代码,可参考示例。

Example

在你运行本sdk前,显式初始化一次开发者信息:

   Config.init(accessID, accessKey, Region.URL_CN);

以获取设备信息接口为例,直接调用device.GetDevice()即可:

    
    let deviceId = 'xxxx';
    let callback = function(err, data) {
        if (err) {
            console.log(err);
            return;
        }
    
        console.log(data);
    };
    
    // 获取设备信息
    DeviceClient.getDevice(deviceId, callback);
    

目前支持的API

| 模块 | 请求类 | | ---- | ---- | | token相关 | TokenClient | | 用户管理 | UserClient | | 设备管理 | DeviceClient | | 设备控制 | DeviceControlClient | | 设备群组 | DeviceGroupClient | | 设备成员管理| DeviceMemberClient | | 数据统计 | DataClient | | 家庭管理 | HomeClient | | 自动化 | AutomationClient | | 场景 | SceneClient | | 配网管理 | PairTokenClient | | 定时管理 | TimeClient | | 天气管理 | WeatherClient |

常见问题

关于refreshToken接口

注意: refreshToken接口会返回一个新的access_token,即使旧的token还未过期。

这个逻辑在GetToken方法中已经做了,用户一般不需要调用refresh接口。

每次调用api之前,是否需要获取token或者刷新token?

不需要,这层逻辑已经在api方法中实现了。token信息会缓存到内存中。

调用某个接口时,如果token已经过期,需要手动调用refresh-token接口?

不需要,在GetToken()方法实现中,会检查token是否过期。如果过期会去重新拉取。

如果你的token会在多个节点中去刷新,那么你需要自己实现common.TokenLocalManage interface

涂鸦的云token,只保证面向的用户级别刷新不会有问题,但是一个用户的token在多个节点并发刷新,就会导致一个节点是成功的, 其他都是失败; 因为 获取token接口会返回一个access_token、refresh_token,但是 刷新token接口 会把当前的refresh_token 刷掉,会产生一个新的,旧的失效;

api方法的异常信息和error需要如何处理?

接口如果返回error,一般可以为url错误或者json解析出错,可联系涂鸦相关人员帮忙修改

如果error为空,但是response的success字段为false,开发者可以根据Msg字段的详细错误信息进行排查

获取设备列表接口,如果多个deviceID,需要怎么拼接?

多个deviceID,以英文逗号分割拼接

获取用户列表接口中,schema指的是什么?

创建APP-SDK后,详情页面的渠道标识符就是schema

v1.0/devices/tokens/{{pair_token}}接口,pair_token是指什么?如何获取?

pair_token是指app下的某个用户的配网token,可以从v1.0/devices/token获取。

如果SDK中的API没有及时更新,如何自己实现一个API?

有三种方法:

一、自定义类实现

  1. 如果请求不需要传递body参数,通过创建请求类继承com.tuya.api.common.ApiRequest, 并完善其中getRequestMethod和getRequestUrl两个方法即可, 如果接口需要传递body参数,应继承com.tuya.api.common.ApiRequestBody, 完善getRequestMethod、getRequestUrl和getRequestBody方法;

  2. 通过client类暴露请求方法。

具体可以参考example.user/example.device目录下相关示例;

二、使用提供的通用接口 直接调用CommonClient, 传入相应的参数即可。

具体可以参考example.common目录下相关示例;

三、提个issue,我们会及时更新 ^_^