Return 通过 API 回复 Google 助理

Return response to Google Assistant via API

我有一个 Actions on Google 项目,它使用 api.ai 作为其操作。这运行良好,我可以看到 request/responses 出现在 google 助手界面上(在手机和模拟器上)

我的一个用例 api.ai 需要分成两部分,因为我们必须通知用户处理已经开始,然后在完成后再次通知他们(没有他们重新提示输出).

我正在尝试一种方法来在处理完成时通知正在使用 Google 助手的用户,但到目前为止都失败了。像这样

用户:我想看看我的贷款请求是否被批准

Google助理:稍等,我查一下再告诉你

.....(异步调用后端的网络服务)

.....几秒后...

.. 从网络服务

回发到google助手

Google小助手:感谢您的耐心等待,您的请求已通过

我不确定如何调用 "postback to google assistant"。我试图从 Api.AI 调用中获取 SessionId,然后使用它来发出事件请求,但这似乎没有将响应发送给助手。 Google 助理似乎正在使用 https://developers.google.com/actions/reference/rest/Shared.Types/AppRequest 中定义的格式,但我不确定如何获取 ConversationToken 并将其用于将响应发送回用户。

简答:你不能那样做。

稍微长一点的回答:至少目前还没有什么好的方法可以发通知。你的 Action 只能响应用户的特定语句。您 可以 说 "ask again in a minute and I should have a result for you" 之类的话,但这不是很好的体验。在 Google I/O 2017 年,他们宣布通知将在某个时候到达 Google 主页......但既没有给出时间框架也没有提供任何有关 API 的信息.

很长,但可能仍然不令人满意的答案:您可以查看 Transactions 让他们发起购买或某种请求然后 "check out"。一旦他们结账,您将确认正在使用 OrderUpdates 处理交易,然后可以发送状态为 "order" 的更新。这些状态更新可以变成通知或用户可以随时查询订单状态。交易不需要付款,因此这可能会根据您的需要起作用。

但是,有几点需要注意。这仍处于开发者预览阶段,因此未来可能会发生变化。它也不适用于智能助理运行的所有表面,因此虽然它确实适用于手机上的智能助理,但它适用于Google马上回家。