请求同步始终返回404:“错误:未找到请求的实体。”

时间:2019-08-07 20:29:08

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

我很难实现requestSync。它总是返回

  "error": {
    "code": 404,
    "message": "Requested entity was not found.",
    "status": "NOT_FOUND"
  }

我将Node.js / Express用于后端。与Google Home应用程序的链接/取消链接也起作用,我的操作也起作用。确实是requestSync部分失败了。

我找到的最近的机票,尽管不完全相同,is this one

我尝试过的事情

  • agentUserId是一个字符串,但是如果我给它传递一个数字,它将返回400,并显示消息“'agent_user_id'处的值无效”。

  • 尝试发送agent_user_id而不是agentUserId,这会返回404与我发送agentUserId时相同的错误

  • 试图删除正文的“ async:true”部分。没有发现差异。
  • 在SYNC期间,对agentUserId的值进行了硬编码,以消除我发送错误的值的可能性。我在requestSync期间使用了相同的agentUserId,但失败了。
  • 尝试在Google Home应用中多次链接/取消链接
  • 要注意的另一件有趣的事情:从Google控制台上的操作打开“测试套件”时,我输入了相同的agentUserId +服务帐户密钥,并且它注册得很好:我能够看到列出的设备正确地。这使我相信我的agentUserId是正确的(这可能是错误的假设)
  • 我100%肯定启用了HomeGraph,因为我可以在控制台的HomeGraph API部分的“概述”部分中的图表上看到数据。

这就是卷发的样子(与示例相同)

curl -i -s -X POST -H "Content-Type: application/json" -d "{agent_us
er_id: \"1\"}" "https://homegraph.googleapis.com/v1/devices:requestSyn
c?key=API_KEY"

(在这种情况下,我的agentUserId为1)

这就是代码中的样子:

    const res = await fetch(
      `https://homegraph.googleapis.com/v1/devices:requestSync?key=${config.googleApiKey}`,
      {
        method: 'POST',
        body: JSON.stringify({
          agentUserId: String(userId),
          async: true,
        }),
        headers: { 'Content-Type': 'application/json' },
      },
    );

不管我做什么,结果总是:

  "error": {
    "code": 404,
    "message": "Requested entity was not found.",
    "status": "NOT_FOUND"
  }

我不知道可以从哪里找到这个问题。任何指针都会有所帮助。谢谢

1 个答案:

答案 0 :(得分:1)

最后找到答案。

距离the one I had posted above不太远。尽管我的问题是,当我生成API密钥时,默认情况下Google家庭云控制台打开了错误的项目。我一直都有错误的API密钥。