问题标签 [google-sdm-api]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
163 浏览

google-api - Google Device Access API 是否允许打开或关闭相机?或者打开或关闭通知?

查看Google Device Access API,我没有看到打开或关闭相机的命令。而且我也没有看到打开或关闭相机通知的命令。我在这里看到了相机特性,但也许其他地方有适用于任何类型设备的命令?

我错过了它,还是实际上没有提供此功能?

我曾希望我能够根据智能家居事件改进通知,而不是像现在这样严格的时间表......

0 投票
3 回答
180 浏览

google-api - 离开/回家模式

API 是否公开了将模式设置为 Away 或 Home 的功能?

我没有在 API 文档中看到这一点。我认为这个功能很重要,因为它现在只允许您关闭恒温器,还可以通过移动应用程序配置警报(我的设置是只在我离开时为我的 NestCams 发送警报)。

0 投票
1 回答
713 浏览

php - 当我使用 PHP curl 向 Google Nest 设备的 SDM API 发送命令时出现“收到无效的 JSON 有效负载”错误

我喜欢使用 SDM API 的命令功能。我必须在 PHP 中执行 Google 文档需要以下语法:

我的 PHP 代码如下所示:

此命令生成以下错误(我将事件 ID 替换为 XYZ):

我已经完成了以下测试:

Google 提供了一个终端功能,它允许我输入文档中描述的原始语法(见上文),而无需依赖 PHP Curl。

成功手动测试后,我使用我的 PHP 代码创建 RAW 数据:

和网址:

我手动将字符串复制到这个结构中:

然后我将以下代码复制粘贴到终端中并且它工作(敏感信息已删除):

所以错误必须来自我的卷曲代码:

0 投票
1 回答
286 浏览

google-api - Google 智能设备管理 API 调用中缺少恒温器设备

我的项目与谷歌的新(截至 10 月)SDM OAuth 方案相关联,我可以与https://smartdevicemanagement.googleapis.com/v1/enterprises/project-id/structures.

我的巢门铃摄像头出现在 json 响应中:

但是恒温器没有出现在这里。我确实在 Nest 应用程序本身上看到了它,所以我很确定它都是链接的。我什至在收音机复选框中看到它。

未检测到设备时如何添加设备?这是一个帐户问题吗,我的恒温器不知何故卡在 Nest 旧版中,而其他一切都在新的 SDM 系统上?

0 投票
2 回答
360 浏览

google-api - 嵌套 sdm api:列出设备时的空响应

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

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

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

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

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

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

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

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

0 投票
1 回答
455 浏览

python-3.x - Google SDM API(Nest 设备)的 Google PubSub 订阅者问题

所以,我被困住了。这可能很长,因为我想建立所有(或我所做的大部分)来达到这一点:

背景:想要为 Raspberry PI 创建一个应用程序,该应用程序可以访问和操作 Nest 设备套件(门铃、恒温器等)。我目前在笔记本电脑上的 Ubuntu VM 中执行此操作。

我做了什么:

  1. 按照谷歌提供的步骤创建了一个设备访问项目。
  2. 还创建了一个 GCP 项目(和上面不是一回事),以便能够设置 OAuth 和 Subscription 设置
  3. Device Access 项目使用来自 GCP 项目的 OAuth,即 Device Access 项目有一个引用 GCP 项目 OAuth 的字段
  4. 完成了设备访问项目步骤,通过浏览器页面授予权限,直到我创建和使用授权代码,我得到了我的第一个访问令牌。我能够执行 CURL 命令来检索 Nest 设备特征,甚至可以执行 RTSP url 来访问相机流。

所以我已经完成了一半,因为我可以通过使用 OAuth 访问令牌与设备(REST API)进行交互。但我想做的是能够对来自设备的事件做出反应,这需要 PubSub 交互性。这就是我卡住的地方

额外步骤:我还在 GCP 凭据中创建了一个服务帐户,因为我在文档中看到它可能是必需的,并且 googles 算法需要一个 GOOGLE_APPLICATION_CREDENTIALS 环境变量到一个带有服务帐户下载凭据的 json 文件。所以检查

  1. 在设置设备访问项目时,创建了一个 PubSub 主题。在 GCP 控制台中,我为 GCP 项目创建了相应的订阅,并手动将其引用到作为设备访问项目的一部分创建的主题(上述步骤)
  2. 文档中提到,当您第一次通过 REST API 与 OAuth 访问令牌进行交互时,pubsub 功能变得可用。注意:我可以从 GCP Console 中的 PubSub 订阅页面确认此“查看消息”。我能够“拉”消息并看到消息出现在订阅中。我知道通过拉取消息,我暂时阻止它们出现在其他队列中,但我想检查消息是否能够填充到订阅中。

好的。所以,不,我想编写代码来访问 pubsub 订阅并围绕对这些事件消息做出反应来创建我的应用程序(或其中的一部分)。这是我被困两天的地方。

我根据谷歌提供的方法创建了一个 python 脚本(我不介意包括 ID,因为这不是私有的)

输出如下:

上面的代码“卡住”了 60 秒,之后“后台线程没有退出”。并出现错误

我尝试了上面的几种变体,包括另一个使用(即“PIP INSTALL”ing)google-cloud-pubsub库的python脚本,但最终我尝试了以下,我从另一个解决方案中借用了我试图找出什么当它“卡住”时正在继续。

这立即导致以下“无效授权:找不到帐户”错误,该错误不断重复,直到我取消脚本...

有没有人知道为什么 Pubsub 模型不起作用,即使我已经遵循了所有可能的文档变体?我尝试更改凭据文件详细信息(只要我不使用服务帐户凭据,它就会给出明确定义的错误,因此这似乎不是问题。

任何帮助或提示将不胜感激。

0 投票
0 回答
72 浏览

google-api - SDM API 调用返回 Enterprise not found

我正在使用 google-api-nodesj-client 包调用 SDM API,并在尝试设置温度时收到 Enterprise not found 消息。

API 在 nest.enterprises.devices.executeCommand 调用上返回 404,并带有以下错误块:

消息:'企业企业/long-enterprise-id-here not found.',
域:'global',
原因:'notFound'

我在 SDM 文档中没有发现任何暗示此错误的内容。感觉像是 GCP 服务帐户配置问题,但我无法理解。

0 投票
1 回答
1094 浏览

google-workspace - 有没有办法使用 Google Workspace (G Suite) 帐户访问 Nest 设备?

我正在尝试使用 Google Workspace (G Suite) 帐户使用设备访问控制台沙箱。当我尝试检索 Nest 设备的权限时,我遇到了一个错误,指出我需要添加为与该设备关联的 Google Home 帐户的成员(请参阅此处)。

但是,似乎无法将 Google Workspace 帐户添加为成员 Google Nest Home 帐户(请参阅此处)。

我想知道是否有任何可能的方法可以使用 Google Workspace 帐户在设备访问控制台中访问 Nest 设备。在使用设备访问控制台进行商业开发时,这可能吗?

谢谢!

0 投票
4 回答
232 浏览

nest-device-access - 是否可以通过 SDM API 访问 Google Nest Doorbell Battery (2021)?

当我尝试授权我的帐户时,我已遵循此https://developers.google.com/nest/device-access/get-started出现错误:

无法访问合作伙伴

无法检索信息。请联系 Nest Api 以验证您的帐户是否已正确设置。您可能需要在 Google Home 应用设置中将开发者电子邮件地址添加为家庭成员。

我开始怀疑 Nest 的新 SDM API 不支持新的 Nest Doorbell。有人通过API成功访问门铃吗?

0 投票
0 回答
31 浏览

google-sdm-api - 新的 Nest Cam 从 SDM API 中消失了

我有一个新的 2021 Google Nest 摄像头(有线而非电池),它通过 SDM API 显示良好,但它突然消失了,只有我的门铃显示(旧的非电池型号)。我尝试重新创建我的应用程序,更改相机的名称,但似乎没有任何解决办法。我可以在 google home 应用程序中很好地查看相机,但是当我在 SDM API 中查找它时,就好像它甚至不存在一样。是否有一些权限设置可以更改?