截至今天,2017 年 5 月 17 日,由于 Google SDK 上的 Actions 升级到 v2,这个问题的最高投票答案不再适用于新的 API.ai 项目。与@Brady 的答案类似的方法仍然有效,但它们在某些方面使其变得更加困难(需要向 Google 提供更多信息,全球唯一的调用名称,尽管是本地唯一的测试),并且在其他方面更好(gactions CLI 文档现在明确声明接受无限时间的预览,如果没有作为参数提供给gactions test
调用,实际上是默认的)。
- 像往常一样创建您的 API.ai 代理。
- 在“集成”侧边菜单下,打开“Actions on Google”设置。
- 从出现的对话框底部选择“测试”(您可能需要在这里跳过几个环节,登录,授权帐户访问等)
- 这是它变得有点不同的地方。您现在需要在 Actions on Google 控制台上创建一个项目。创建项目或将项目导入控制台。
- 第一步是提供一个动作包,它可以直接来自 API.ai 或 SDK。对于 API.ai,您必须返回我们所在的集成页面,然后在您的 Actions on Google 设置中按“更新”。(在之前版本的 SDK 中,这被标记为“部署”并且会公开您的应用程序,但不用担心 - 现在所做的只是更新 AoG 控制台。如果需要,您稍后可以从 AoG 控制台公开发布) .
- 这个新控制台需要比以前更多的信息。我发现“助理应用名称”可以是任何你想要的,但“发音”严格限于几个条件(全球唯一、保留关键字、非品牌违规)。我还发现我仍然可以使用应用程序名称来调用,而不仅仅是发音,但我怀疑这将得到修复。
填写完所有必要信息后,您可以从 API.ai 进行测试。返回 API.ai 中的 AoG 设置菜单并从 HTTP 请求中检索响应内容preview
(就像上面@Brady 的回答一样)。在这里,我们遇到了另一个不同之处。请求响应的内容不能直接在action.json
文件中使用,因为它被包装在另一个对象中。您只想使用属性中的对象actionPackage
。(即删除
{
"actionPackage":
从内容的开头和
}
从最后)。您最终应该得到一个与此结构类似的对象(但可能不完全是,这取决于您的 API.ai 代理的内容):
{
"actions": [...],
"types": [...],
"manifest": {...},
"conversations": {...}
}
把它放到你的action.json
文件中。
执行新的gactions
CLI 命令:
gactions test --project <your_project_name_from_aog_console> --action-package action.json
- 享受您在 Google SDK 项目上的本地 v2 操作!并祈祷谷歌不会进一步改变交易......
我尽我所能从记忆中回忆起我必须做的事情,所以这篇文章可能会有一些错误。希望这可以帮助某人。