Google HomeGraph API:PERMISSION_DENIED错误

时间:2019-03-25 01:11:22

标签: google-api actions-on-google google-smart-home

我正在使用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调用中发生?

1 个答案:

答案 0 :(得分:0)

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

有两个可能的原因导致此错误发生。

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

希望这对遇到此问题的人有帮助。