Documentation
¶
Index ¶
- func HmacSha256(data, key string) string
- func Timestamp() string
- type Client
- func (c *Client) Do(r *http.Request) (res *http.Response, err error)
- func (c *Client) DoAndParse(r Request, resp interface{}) (err error)
- func (c *Client) Parse(res *http.Response, resp interface{}) error
- func (c *Client) PlainSign(timestamp string) string
- func (c *Client) Request(r Request) (req *http.Request, err error)
- func (c *Client) Token() (token string, err error)
- func (c *Client) TokenSign(token, timestamp string) string
- type Endpoint
- type Error
- type HTTPClient
- type MemoryStore
- type Option
- type Request
- type RequestBody
- type Response
- type TokenRequest
- type TokenResponse
- type TokenStorage
Examples ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type Client ¶
type Client struct {
// contains filtered or unexported fields
}
Client for tuya cloud.
Example ¶
package main
import (
"github.com/ekeynow/tuyacloud"
"github.com/ekeynow/tuyacloud/user"
"github.com/go-log/log/log"
)
func main() {
client := tuyacloud.NewClient(
tuyacloud.APIEndpointUS,
"1KAD46OrT9HafiKdsXeg",
"4OHBOnWOqaEC1mWXOpVL3yV50s0qGSRC",
tuyacloud.WithLogger(log.New()),
)
req := &user.QueryUserInfoRequest{
UID: "123456",
}
var info user.QueryUserInfoResponse
err := client.DoAndParse(req, &info)
if err != nil {
panic(err)
}
// Blah Blah Blah...
}
Output:
func (*Client) DoAndParse ¶
DoAndParse = Do + Parse.
type Endpoint ¶
type Endpoint string
Endpoint for API Call.
const ( // APIEndpointCN prefer to China. APIEndpointCN Endpoint = "https://openapi.tuyacn.com" // APIEndpointUS prefer to America. APIEndpointUS Endpoint = "https://openapi.tuyaus.com" // APIEndpointEU prefer to Europe. APIEndpointEU Endpoint = "https://openapi.tuyaeu.com" // APIEndpointIN prefer to India. APIEndpointIN Endpoint = "https://openapi.tuyain.com" )
type Error ¶
Error info.
Example ¶
package main
import (
"errors"
"fmt"
"github.com/ekeynow/tuyacloud"
)
func main() {
var (
client *tuyacloud.Client
r tuyacloud.Request
err error
)
m := map[string]interface{}{}
err = client.DoAndParse(r, &m)
if err != nil {
var apiErr tuyacloud.Error
if errors.As(err, &apiErr) {
fmt.Println(apiErr.Code, apiErr.Msg)
}
}
}
Output:
type HTTPClient ¶
HTTPClient interface.
type MemoryStore ¶
type MemoryStore struct {
// contains filtered or unexported fields
}
MemoryStore storage.
type Option ¶
type Option func(o *options)
Option settings.
func WithMaxRetries ¶ added in v0.4.1
WithMaxRetries setup max retries. Disable retries when i == 0.
func WithTokenStore ¶
func WithTokenStore(s TokenStorage) Option
WithTokenStore setup token storage interface.
type Response ¶
type Response struct {
Success bool `json:"success"`
Code int `json:"code"`
Msg string `json:"msg"`
Timestamp int64 `json:"t"`
Result json.RawMessage `json:"result"`
}
Response body
type TokenRequest ¶
type TokenRequest struct {
// contains filtered or unexported fields
}
TokenRequest manages token refresh method.
func (*TokenRequest) SetRefresh ¶
func (t *TokenRequest) SetRefresh(token string)
SetRefresh refresh token.
type TokenResponse ¶
type TokenResponse struct {
ExpireTime int `json:"expire_time"`
UID string `json:"uid"`
AccessToken string `json:"access_token"`
RefreshToken string `json:"refresh_token"`
}
TokenResponse for token response from tuya server.
type TokenStorage ¶
TokenStorage stores token.
Directories
¶
| Path | Synopsis |
|---|---|
|
Package automation for scene automation.
|
Package automation for scene automation. |
|
catalog
|
|
|
bodyfat
Package bodyfat for Body Fat Scale
|
Package bodyfat for Body Fat Scale |
|
infrared
Package infrared for Universal Infrared
|
Package infrared for Universal Infrared |
|
ipc
Package ipc for IPC
|
Package ipc for IPC |
|
sleep
Package sleep for Sleep pace
|
Package sleep for Sleep pace |
|
smartlock
Package smartlock for Smart Door Lock interface.
|
Package smartlock for Smart Door Lock interface. |
|
Package data for Data Service.
|
Package data for Data Service. |
|
Package device implements Device Management API interface.
|
Package device implements Device Management API interface. |
|
Package devicectl for Device Control
|
Package devicectl for Device Control |
|
Package group for Device Group
|
Package group for Device Group |
|
Package ota for OTA upgrade.
|
Package ota for OTA upgrade. |
|
Package pairing for Device Pairing.
|
Package pairing for Device Pairing. |
|
Package smarthome for Smart Home Management
|
Package smarthome for Smart Home Management |
|
helpers
Package helpers is a generated GoMock package.
|
Package helpers is a generated GoMock package. |
|
Package timing for Device Timing Management
|
Package timing for Device Timing Management |
|
Package user for User Management
|
Package user for User Management |
|
Package weather for Weather Service.
|
Package weather for Weather Service. |
Click to show internal directories.
Click to hide internal directories.