通过HTTP Bridge发布-Google Cloud Platform-问题

问题描述

我有一个 esp32 板连接到 SIM800L gsm / gprs模块。我正在为此项目使用 TinyGSM 库。 不知何故,我无法通过http桥接成功发布数据到 Google云。 以前,我运行过文档中显示的示例,了解如何使用curl进行此操作,并且很成功。

curl -X POST -H 'authorization: Bearer JWT' -H 'content-type: application/json' --data '{"state": {"binary_data": "DATA"}}' -H 'cache-control: no-cache' 'https://cloudiotdevice.googleapis.com/v1/projects/{project-id}/locations/{cloud-region}/registries/{registry-id}/devices/{deviceid}:setState'

当我使用 TinyGSM esp32 生成相同的请求时,我总是从Google服务器获得相同的http响应:

“错误”:{ “代码”:403, “ message”:“呼叫者没有权限”, “ status”:“ PERMISSION_DENIED”}

起初,我认为这与错误的JWT有关,但是当故意更改为错误的JWT时,错误消息更改为:

“错误”:{ “代码”:401, “ message”:“请求缺少必需的身份验证凭据。预期的OAuth 2访问令牌, 登录cookie或其他有效的身份验证凭据。看到 https://developers.google.com/identity/sign-in/web/devconsole-project.", “ status”:“ UNAUTHENTICATED”}

所以我想我可以排除可能无效的JWT

我怀疑我的项目配置可能有问题,但是如果是这种情况,我不明白为什么它总是可以在curl上工作而不能在esp32上工作。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...