1

我正在开发与 Google Home 的 Home Control 集成,但在任何测试期间都无法让 Google Home 调用我的对话 URL。

因为无法使用模拟器测试 Home Control 操作,所以我设置了 Google Home 设备、手机上的 Google Home App 和 Actions on Google 项目,所有这些都使用同一个 Google 用户。

我运行gactions test --action-package action.json --package MYPACKAGE没有问题。

尝试测试项目时,我打开 Google Home 应用,可以在 Home Control > Add Devices 下看到“[test] my app”。这让我想到了 OAuth2 流程。

OAuth2 服务器似乎工作正常,我可以从日志中看到 google 端正在成功检索 access_token。一切都按照文档进行:https ://developers.google.com/actions/identity/oauth2-code-flow 。

我假设下一步将是“Actions on Google”以 SYNC 意图调用我的对话端点 URL。但是,我在服务器上看不到这样的请求,并且 Google Home 应用程序显示一个对话框,上面写着“出了点问题。再试一次”

再试一次没有帮助。

这是我的 action.json 的全部内容:

{
  "actions": [{
    "description": "testing...",
    "name": "actions.devices",
    "deviceControl": {},
    "fulfillment": { "conversationName": "automation" }
  }],
  "conversations": {
    "automation" : {
      "name": "automation",
      "url": "https://5ca2a6b9.ngrok.io/googleToTesting"
    }
  }
}

任何帮助将不胜感激。

编辑 2017 年 8 月 17 日

作为一种解决方法,打开浏览器到该 urlhttps://assistant.google.com/services/auth/handoffs/auth/start?provider=MYPROJECTID_dev&return_url=https://some.useless.url/并使用浏览器通过 OAuth 流以某种方式使来自 Google Home 应用程序的下一个 OAuth 流初始化成功。

(注意 Google 项目 ID 后的神奇 _dev -suffix。)

4

2 回答 2

1

我刚刚从“Actions on Google Support”收到以下信息:

存在与未触发 action.devices.SYNC 请求相关的错误。目前,Eng 团队正在努力为开发人员提供解决方案或解决方法。

一旦我从他们那里得到更新,我就会在这里发布。

于 2017-09-11T10:52:11.997 回答
0

conversations尝试通过修改对象将 action.json 版本号强制为 2 :

"conversations": {
  "automation" : {
    "name": "automation",
    "url": "https://5ca2a6b9.ngrok.io/googleToTesting",
    "fulfillmentApiVersion": 2
  }
}
于 2017-08-09T15:22:17.437 回答