我正在开发一个家庭控制集成到Google Home,但无法让Google Home在任何测试期间调用我的会话URL。
由于无法使用模拟器测试家庭控制操作,因此我在手机上设置了Google Home设备,Google Home应用程序以及所有使用相同Google用户的Google Play操作项目。
我运行gactions test --action-package action.json --package MYPACKAGE
没有问题。
尝试测试项目时,我打开Google 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。)
答案 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
}
}