0

我在 stackoverflow 上问这个问题,因为据我所知,这是谷歌为这个 API 提供支持的唯一地方,尽管这似乎确实需要检查我的谷歌项目来确定问题。

无论如何,我已经多次按照信中的嵌套设备访问快速入门指南,从头到尾完成一个新项目,验证每一步都达到了描述的状态。在完成指南的最后,我可以在Partner Connections 列表中看到我的项目。当我查看开发人员控制台中的智能设备管理 API 页面时,为项目启用了 SDM API,以获取正确的项目。

如该指南中所述,手动执行 oauth2 流程会生成访问令牌。

但是,当我发出这样的设备列表调用时(如我链接到的快速入门指南中所述)

curl -X GET 'https://smartdevicemanagement.googleapis.com/v1/enterprises/<redacted project id>/devices' \
    -H 'Content-Type: application/json' \
    -H 'Authorization: Bearer <redacted access token>'

调用返回 200,但响应的全部内容如下:

{}

当我查看合作伙伴连接页面时,我可以看到我已明确授予对我希望项目能够访问的设备的访问权限。请参阅 此合作伙伴连接页面的屏幕截图,表明我已允许访问我希望 API 能够看到的设备。

oauth2 的所有授权回调 URL 都是 https。

在这一点上,我已经花了多个晚上来抨击我的头。我在这里做错了什么?

4

2 回答 2

1

在我的恒温器不再被 API 列出后,我暂时将其位置切换到不同的位置,然后将其切换回来。出于某种原因,它有所帮助。

您可以在 Nest webservice 中找到它:设置 -> 关于 -> 在哪里

我希望它也对你有用。

于 2020-12-08T03:02:41.603 回答
0

尝试了位置更改和其他几个建议的解决方法。当我查询 API 时,我只会得到 1 个设备。我将未显示为出厂默认设置的设备重置并从头开始重新设置所有内容。那成功了。Home Assistant 上的简单集成重新加载使不可用的设备备份并运行。

于 2021-09-04T18:10:42.527 回答