0

我正在使用 Google 上的 Actions 制作智能家居应用。我目前有一个 Firebase 云函数,它通过请求同步请求调用 HomeGraph API。

下面是函数的内容:

const {smarthome} = require('actions-on-google');

const app = smarthome({
  key: "(My Key)"
});

//Assume UID is the id of the user that we are requesting a sync for
app.requestSync(uid).then((res) => {
  return;
}, (e) => {
  console.error(e);
});

在此函数的日志中,我收到错误:

{ "error": { "code": 403, "message": "The caller does not have permission", "status": "PERMISSION_DENIED" } }

此错误似乎是标准的 Google API 权限被拒绝错误响应,但它何时会在 Request Sync HomeGraph API 调用中发生?

4

1 回答 1

0

我遇到这个问题很长时间了,我决定在这里发布问题和答案,这样其他人就不必浪费时间进行故障排除了。

发生此错误有两个潜在原因。

  1. 最合乎逻辑的原因:确保在传递给 smarthome 构造函数的数据中提供有效的 API 密钥。问题中的示例是正确的(当然,替换(my key)为您在控制台中创建的密钥。
  2. 这是我遇到错误的原因:确保您传入的 uidrequestSync()是有效的用户 ID。我的 SYNC 代码存在缺陷,因此没有创建用户。我在诊断这个问题时非常努力,因为错误消息没有意义。

希望这对任何有这个问题的人都有帮助。

于 2019-03-25T01:11:22.410 回答