3

我正在尝试从 PHP webapp 与 Tuya API 交互。

我必须使用用户 ID 对用户进行身份验证并签名以接收 TOKEN。

主要问题 - 当我生成 SIGN 时,我可以理解我应该在“消息”字段中写什么。

以下是我用来向授权管理 API 发出请求的代码:

$secret = 'secret';
$clientId = 'client';

$url = "https://openapi.tuyaeu.com/v1.0/token?grant_type=1";

                        $s = strtoupper(hash_hmac("sha256", "Message",$secret));

                        $curl = curl_init($url);
                        curl_setopt($curl, CURLOPT_URL, $url);
                        curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);

                        $headers = array(
                            "sign_method: HMAC-SHA256",
                            "client_id: *MY ID*",
                            "secret: *MY Secret code*",
                            "sign:".$s,
                            "t: " . time()*1000,
                            "Content-Type: application/json",
                        );
                        curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
                        //for debug only!
                        curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
                        curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);

                        $resp = curl_exec($curl);
                        curl_close($curl);
                        var_dump($resp);

所以现在我的请求生成“错误符号”的答案。可能是因为我一开始不知道在符号生成代码中的“消息”中放入什么

4

1 回答 1

2

解决了:

  1. 要接收令牌,“消息”应该是我的 ID + time()*1000
  2. 要接收数据,“消息”=>我的 id +令牌(来自 1))+ time()*1000
于 2021-07-03T09:23:53.063 回答