繁体   English   中英

通过bash致电涂鸦API

Call to Tuya API via bash

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

在使用 curl 时,我很难调用涂鸦 API。

涂鸦需要生成如下签名:HMAC-SHA256(client_id + t, secret)。 我构建了一个小脚本,它完全按照 Tuya 的要求。 我还通过尝试使用与文档中相同的 client_id、t 和 secret 作为示例生成签名进行了仔细检查,并且生成的签名与文档中的内容相匹配。

client_id 是预先分配的值 t 是 13 位的时间戳(我认为这是错误所在) secret 是预先分配的值

构建签名后,需要在 POST 调用中通过 curl 使用它,但涂鸦一直拒绝签名并出现以下错误:

{"code":1004,"msg":"sign invalid","success":false,"t":1664314067553}

现在,我认为问题在于时机。 为了让我的脚本生成签名,需要几毫秒,当 t 的值传递给 curl 时,它与 curl 的执行不匹配(当然)。 这是我的代码:

t=($(($(date +%s%N)/1000000))); sign1=$(echo -n "yyr8hxxxxxxxxd4mji$t" | openssl dgst -sha256 -hmac "cc75fd7xxxxxxxxx63d032b" | awk '{print$2}') && sign2=$(echo ${sign1^^}) ; curl --request POST "https://openapi.tuyaeu.com/v1.0/iot-03/devices/717715xxxxxxx520/commands" --header "sign_method: HMAC-SHA256" --header "client_id: yyr8hxxxxxxxxd4mji" --header "t: t" --header "mode: cors" --header "sign: $sign2" --header "access_token: cc75fd7xxxxxxxxx63d032b" --data "{"commands":[{"code":"switch_1","value":true}]}"

我当然已经尝试过使用 && 一起执行所有命令,但没有任何变化。 有人有什么想法吗?

问题暂未有回复.您可以查看右边的相关问题.
1 用涂鸦Api换灯色?

如何更改 LED 灯的颜色? 我使用 Node Red 和涂鸦智能设备节点。 它可以工作,例如当我想打开灯时 我该如何更改颜色...我尝试了以下方法,但它不起作用 你有一个例子吗? ...

2 集成涂鸦API与fibaro lua场景

我想寻求帮助 我有一些涂鸦设备 我想通过 API 连接它 我有来自 IOT tuya 的 API 在涂鸦上它给 如何在 Lua 代码中编写它? 或者如何在 QA 中调用它,因为我还在学习 Lua? ...

3 如何使用涂鸦 API 的 RTSP 直播链接?

我从涂鸦 API explorer 获得了一个使用“IoT Video Live Stream”服务的链接。 我想知道在哪里可以将此链接用于 stream 我的相机视频。 我的涂鸦APP上有视频,但我想使用这个链接。 这是 API 返回的示例。 {“结果”:{“url”:“rtsps://eb3 ...

4 涂鸦对 API 调用中的“消息”有何期待?

我正在尝试与来自 PHP webapp 的涂鸦 API 进行交互。 我必须使用用户 ID 对用户进行身份验证并签名以接收 TOKEN。 主要问题 - 当我生成 SIGN 时,我可以理解我应该在“消息”字段中写什么。 以下是我用来向授权管理 API 发出请求的代码: 所以现在我的请求生成“错误符号” ...

2021-06-30 12:58:09 1 436   php/ tuya
6 当涂鸦 API 在他们的一些 Open API 调用中要求“模式”时,他们指的是什么?

我已经使用他们的API访问了涂鸦云。 我不能使用任何使用“模式”的 API 调用。 我假设这是我的 iOS 应用程序的名称? 有没有人有一个使用“模式”的工作调用的例子? 例如,我在调用 API“获取用户列表”时尝试了“sensorstat”和“com.status.sensor”。 我希望 AP ...

8 在我致电 api 后,对不需要的刷新做出反应

我很困惑为什么我的反应应用程序在我发送后呼叫后会自动刷新? 在我的服务器端,我使用的是 express,一切都保存到数据库中。 它应该重新调整 res.status 200,但在代码到达 the.then() 之前它会自动刷新。 这是我的提交代码: 我放了一个调试器,但它从未触发过。 我不想刷新屏幕 ...

2020-08-17 18:53:35 0 25   reactjs
暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM