Google上的操作永远不会调用我的履行终结点网址

时间:2017-08-09 13:37:49

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

我正在开发一个家庭控制集成到Google Home,但无法让Google Home在任何测试期间调用我的会话URL。

由于无法使用模拟器测试家庭控制操作,因此我在手机上设置了Google Home设备,Google Home应用程序以及所有使用相同Google用户的Google Play操作项目。

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

尝试测试项目时,我打开Goog​​le Home应用,可以看到“测试”我的应用程序'在家庭控制下>添加设备。这让我想到了OAuth2-flow。

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

我认为下一步是针对谷歌的行动'使用SYNC-intent调用我的会话端点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"
    }
  }
}

非常感谢任何帮助。

编辑17. 2017年8月

作为一种解决方法,将浏览器打开到网址https://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。)

2 个答案:

答案 0 :(得分:1)

我刚从“Google支持的操作”中收到以下信息:

  

有一个与action.devices.SYNC请求无法解雇相关的错误。   目前,Eng团队正致力于为开发人员提供解决方案或解决方案。

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

答案 1 :(得分:0)

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

"conversations": {
  "automation" : {
    "name": "automation",
    "url": "https://5ca2a6b9.ngrok.io/googleToTesting",
    "fulfillmentApiVersion": 2
  }
}