KO
|
EN
gitlite — search
Search
#java
#php
#python
#c-plus-plus
#android
#javascript
#c
#module
#tools
#game
#hacktoberfest
#lua
tuya-connector-nodejs
★ 47
Open GitHub ↗
nodejs sdk
Download README (.md)
Explore Similar Repositories
nerves_weather_station
:
This repo contains the companion code for the PragProg Nerves book.
MiUnlock
:
MiUnlockCode iCloud Bypass Signal Open Source Code
golang-course-code
:
Source code snapshots for my "Golang - The Practical Guide" course.
poseidon
:
A no-dependency, intuitive, and lightweight web framework from scratch in Javascript
iOS09-BBus
:
실시간 버스 정보, 승하차 알람 기능을 제공하는 '카카오버스' 앱 클론 프로젝트 🚌 BoostBus 📲
// repository documentation
Was this content helpful?
★ 0
(0 ratings)
Select Rating:
★
★
★
★
★
Submit Feedback
Recent Feedback
×
Download README
Do you want to download the
README.md
file for
tuya-connector-nodejs
?
Download (.md)
[English](README.md) | [中文版](README_CN.md) ### What is `tuya-connector`? [Tuya Open Platform—API Reference](https://developer.tuya.com/en/docs/iot/api-reference?id=Ka7qb7vhber64) Tuya provides a set of HTTP APIs and signature verification logic. You need to implement the logic when you make the API requests. `tuya-connector` provides capabilities to sign a request, refresh, store, and renew a token, and encapsulate common APIs, helping you quickly connect to Tuya's open platform. ### Install ```bash npm install @tuya/tuya-connector-nodejs # or yarn add @tuya/tuya-connector-nodejs ``` ### Get started ```ts import { TuyaContext } from '@tuya/tuya-connector-nodejs'; const tuya = new TuyaContext({ baseUrl: 'https://openapi.tuyacn.com', accessKey: 'xx', secretKey: 'xx', }); const device = await tuya.device.detail({ device_id: 'device_id' }); ``` ## Advanced development ### Custom `tokenStore` By default, `tokenStore` is implemented based on memory. We recommend that you implement the store instance in your service. In the following code block, the Redis Store is used as an example. ```ts // tokenStore.ts import { TuyaTokenStorInterface, TuyaTokensSave } from '@tuya/tuya-connector-nodejs'; import IORedis from 'ioredis'; export class RedisTokenStore implements TuyaTokenStorInterface { private readonly client: IORedis.Redis; private readonly key: string; constructor(client: IORedis.Redis, key: string = 'tuya::token') { this.client = client; this.key = key; } async setTokens(tokens: TuyaTokensSave): Promise<boolean> { const res = await this.client.set(this.key, JSON.stringify(tokens)); return ! ! res; } async getAccessToken(): Promise<string | undefined> { const jsonStr = await this.client.get(this.key) || '{}'; const tokens: TuyaTokensSave = JSON.parse(jsonStr); return tokens && tokens.access_token; } async getRefreshToken(): Promise<string | undefined> { const jsonStr = await this.client.get(this.key) || '{}'; const tokens: TuyaTokensSave = JSON.parse(jsonStr); return tokens.refresh_token; } } // index.ts import { RedisTokenStore } from './tokenStore'; import IoRedis from 'ioredis'; const redis = new IoRedis(); const tuya = new TuyaContext({ baseUrl: 'https://openapi.tuyacn.com', accessKey: 'xx', secretKey: 'xx', store: new RedisTokenStore(redis), }); ``` ### Custom request of `httpClient` `tuya-connector` uses Axios as `httpClient` by default, and exposes replaceable parameters. If necessary, you can also customize `httpClient`. ```ts import axios from 'axios'; import { TuyaContext } from '@tuya/tuya-connector-nodejs'; const tuya = new TuyaContext({ baseUrl: 'https://openapi.tuyacn.com', accessKey: 'xx', secretKey: 'xx', rpc: axios }); ``` ### Requests of other OpenAPIs `tuya-connector` encapsulates common APIs, and declares the types of request and response parameters. You can customize additional API requests. ```ts import { TuyaContext } from '@tuya/tuya-connector-nodejs'; const tuya = new TuyaContext({ baseUrl: 'https://openapi.tuyacn.com', accessKey: 'xx', secretKey: 'xx', }); const { data } = await tuya.request({ method: 'GET', path: '/v1.0/xx', body: {}, }); ``` ### Other issues 1. Apply for an authorization key. On the [platform](https://iot.tuya.com/cloud/), you can create a project to get the access ID and access secret of the cloud application. 2. For more information about global error codes, see [Global Error Codes](https://developer.tuya.com/en/docs/iot/error-code?id=K989ruxx88swc).