问题标签 [api-ai]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
actions-on-google - 请求之间未存储 Google 助理位置权限
使用 API.AI 和 Google 助理,我请求获取用户姓名和位置的权限。目的是我将能够请求一次许可,随后对我的 Action 的请求将不需要再次请求(因为每次用户与我的 Action 交谈时,这都会导致对话非常生硬)。
我发现的是,我只获取与意图相关actions_intent_PERMISSION
的信息 - 即使我已经授予许可,该信息也不会在其他意图实现中发送。(在下面的示例代码中 - 它最终重新请求所有其他意图的权限。)
我也没有看到在调用我的操作之间维护此权限。因此,每次触发动作时,都会(再次)询问他们是否授予动作权限。
这两种行为似乎都很奇怪。一般来说,应用程序模型不需要我在应用程序调用之间重新授权对资源的权限,甚至在应用程序“运行”时也不需要。甚至网页在会话期间也会保留授权。我做错了什么,还是这是预期的行为?
正在执行的代码(这在 Google Cloud Functions 中运行,并且有一些额外的结构通过 Promise 进行这些调用 - 这只是代码的相关部分)。res.send(200)
只是向 API.AI 表明它应该使用那里定义的响应,并且可以正常工作。return Promise.resolve(null);
只是确保不执行其他回退/错误条件。
actions_intent_PERMISSION
处理请求的 API.AI Intent :
另一个应具有用户/位置有效负载的 Intent,但从未使用该信息调用
模拟器的屏幕截图显示它总是请求许可,除非它特别被授予:
初始连接时发送的 JSON:
在请求许可后发送的 JSON 并且我已授予它。正如预期originalRequest.data.user
的那样,有了名称,originalRequest.data.device
现在有了位置。
JSON 在我授予权限后发送(上图),然后发出“简单测试”短语。请注意,用户和设备字段缺少授予权限的信息,但这是正确的意图。
在两个会话之间执行此操作会产生相同的结果。
actions-on-google - askForPermission 不适用于 Google 模拟器上的操作
我正在尝试获取用户的当前位置,并且正在使用 Api.AI 网络工具来创建我的操作/意图。
部署使用 -
完整链接index.js
_
但是当我的动作被触发时,我会收到这条消息 -
我们不能要求模拟的许可吗?另外如何在真实设备上测试我的应用程序?
编辑:
权限功能陷入循环-
actions-on-google - 使用 Google 上的操作从 ID 令牌捕获信息?
我看到我们可以使用与 Google 上的 Actions 关联的帐户来使用 Google 登录 ID 令牌自动注册用户,该令牌提供电子邮件和姓名等信息。
我们是否可以将这些数据导入我们自己的数据库,以便我们以后可以通过电子邮件联系用户,让他们了解更新和新功能?
node.js - 来自 api.ai https webhook 的状态 206
我目前有一个在 EC2 上托管的用于 api.ai 的有效 ExpressJS webhook。
但是,当我在 https webhook 中使用相同的 GET/POST 处理程序时,我的后端会失败。特别是,我没有看到 POST 处理程序的任何 (console.log) 输出,并且我的 api.ai 操作返回 206 错误。
我已经验证可以从浏览器访问 https webhook 服务器。TIA 的任何建议
api.ai JSON 状态如下:
POST 处理程序如下。
node.js - 用户选择的 Webhook 生成的列表获取选项
我是 API.AI 和 Google Actions 的新手。我有一个由履行生成的项目列表。我想获取用户选择的选项。我已经尝试阅读文档,但似乎无法理解。
https://developers.google.com/actions/assistant/responses#handling_a_selected_item
我也尝试设置后续意图,但它不会起作用。它总是最终给出后备响应。
我正在尝试搜索产品或其他东西,结果使用列表选择器格式显示。我想获取我选择的选项。这是一个 search_product 意图,我有一个后续意图 choose_product
python - Api.ai 请求正文不包含可以将 access_token 发送到履行 webhook 的 originalRequest 对象
Api.ai 请求正文不包含 originalRequest 对象,从该对象access_token
可以将其发送到履行 webhook。谁能告诉我为什么我没有看到 originalRequest 正文?
我已经成功完成了我的应用程序的帐户链接,实际上,操作 Web 模拟器确实access_token
在调试窗口中显示了预期,但Api.ai json 请求正文没有它。
我正在使用 python 来实现逻辑。非常感谢您对此的任何帮助。
如果有一些关于如何从 api.ai json 请求中获取 access_token 以便它可以用于 webhook 实现逻辑的文档或示例应用程序(特别是在 python 中),这将非常有帮助。在我的具体情况下,我需要执行以下操作:
- 从api.ai
access_token
请求中获取(在阅读了一堆文章/文档后,似乎它只会在 originalRequest json 对象中看到,而我在请求中根本没有看到) access_token
在我的 API 调用的不记名标头中使用
仅供参考,我正在操作 Web 模拟器上对此进行测试,并且 Web 模拟器中的调试窗口显示访问令牌,它告诉我帐户链接成功。我只需要知道如何从 api.ai 请求中获取那个 access_token。
actions-on-google - 我如何从 ApiAiApp 或 ActionsSdkApp 获取 conversationId?
我尝试在 ApiAiApp 和 ActionsSdkApp 的文档中查找,它们没有获取 conversationId 的属性或功能。我可以从 JSON 请求中看到这一点。我是否必须自己解析请求才能获取会话 ID?conversationId 应该是常用的。
dialogflow-es - Api.ai - 如何使用“与 [应用程序名称] 交谈”以外的命令启动 Google 助理(Actions on Google)
我正在与 Api.ai 合作在 Google 助手上制作应用程序。一切都按预期工作,除了我无法让助手使用除"Talk to [app name]"
.
起初,我根本不认为这是可能的,但我看到了它的 Google I/O 演示。它看起来像这样:
所以看起来他们正在使用"I'd like delivery from Panera"
. 所以我不知道演示是否是假的,但他们不必以Talk to Panera
.
我做了一些研究,发现这个选项不一定在 Api.ai 中,但它可能在“Actions on Google”中。
我正在设置您在下面看到的这些选项,但它仍然不起作用。
这是 Api.ai 或“Actions on Google”的错误还是我做错了什么?
当我尝试“使用 [我的应用名称] 订购”时,我收到此错误。
“抱歉,此动作在模拟中不可用”
如果我在我的 Pixel 手机上尝试“与 [我的应用名称] 交谈”,测试应用就会打开,但如果我在我的 Pixel 上说“从 [我的应用名称] 订购”,它只会找到搜索结果。所以我得出的结论是它不起作用。
actions-on-google - 可以使用 SVG 图像吗?
出于某种原因,我无法让 SVG 图像显示在我的手机上,只能显示在模拟器上。这个错误/功能是否正在进行/预期?我在指南中找不到任何有关文件格式的文档。
不知道这是否会影响它,但我正在使用 API.AI 的 Google 选项卡上的操作来创建轮播。
提前致谢!