是否可以向 google 家庭应用程序发送丰富的回复?
Is it possible to send rich responses to google home app?
我在 google 应用程序上开发了一个动作,它发送了一个丰富的响应。 Google 模拟器上的操作一切正常。现在我想在我的 Google Home Mini 上测试它,但 mini 并没有告诉我丰富的回复。我想请问是否可以将我的富回复发送到google home app? home mini 说了类似 "Ok, I found these hotels, look at the home app" 并且有丰富的回复?
丰富的回复可以出现在纯屏幕或音频和屏幕体验中。
它们可以包含以下组件:
- 一两个简单的回复(聊天气泡)
- 可选基本卡
- 可选建议筹码
- 一个可选的 link 输出芯片
- 选项界面(列表或轮播)
因此您需要确保文本响应包含仅语音等案例的所有详细信息(例如 Google home/mini/max)。
但是,如果您的用户通过带屏幕的设备使用助手,您可以通过丰富的回复(例如建议信息块、links 等)为他们提供更好的体验。
您无法将用户转至首页 app,但您可以将他们转至 Assistant,可通过 phone.过程大致是:
在对话的某个时刻(决定什么最适合你,但是当你有需要显示的结果时通常是好的,或者如果用户说 "Show me" 或 "Send this to my phone"), 确定它们是否在带屏幕的设备上。您可以使用 app.getSurfaceCapabilities()
方法或查看 originalRequest.data.surface.capabilities
属性 中的 JSON 来执行此操作。如果他们使用的是屏幕,那么一切就绪。但如果不是...
确保他们有他们可以使用的屏幕。您将通过查看 app.getAvailableSurfaces()
的结果或查看(未完全记录的)originalRequest.data.availableSurfaces
数组中的 JSON 来执行此操作。如果他们没有屏幕,您将需要找出最佳行动方案。但是如果他们确实有可用的屏幕表面(例如他们的 phone,目前)...
您可以使用 app.askForNewSurface()
方法请求将它们转移到新表面,传递一条消息解释您为什么要进行切换,该消息将作为通知出现在设备,以及您需要的表面(屏幕)。
如果用户同意,他们将在其移动设备上收到通知(使用该设备的常规通知系统)。当他们 select 收到通知时,智能助理将打开并向您的操作发送一个名为 actions_intent_NEW_SURFACE
的事件。您需要创建一个 Intent 来处理此事件并将其转发到您的 webhook。
您的 webhook 应确认它在有用的表面上,然后继续对话并发送结果。
您可以在 https://developers.google.com/actions/assistant/surface-capabilities
查看更多关于处理不同表面的信息
我在 google 应用程序上开发了一个动作,它发送了一个丰富的响应。 Google 模拟器上的操作一切正常。现在我想在我的 Google Home Mini 上测试它,但 mini 并没有告诉我丰富的回复。我想请问是否可以将我的富回复发送到google home app? home mini 说了类似 "Ok, I found these hotels, look at the home app" 并且有丰富的回复?
丰富的回复可以出现在纯屏幕或音频和屏幕体验中。 它们可以包含以下组件:
- 一两个简单的回复(聊天气泡)
- 可选基本卡
- 可选建议筹码
- 一个可选的 link 输出芯片
- 选项界面(列表或轮播)
因此您需要确保文本响应包含仅语音等案例的所有详细信息(例如 Google home/mini/max)。
但是,如果您的用户通过带屏幕的设备使用助手,您可以通过丰富的回复(例如建议信息块、links 等)为他们提供更好的体验。
您无法将用户转至首页 app,但您可以将他们转至 Assistant,可通过 phone.过程大致是:
在对话的某个时刻(决定什么最适合你,但是当你有需要显示的结果时通常是好的,或者如果用户说 "Show me" 或 "Send this to my phone"), 确定它们是否在带屏幕的设备上。您可以使用
app.getSurfaceCapabilities()
方法或查看originalRequest.data.surface.capabilities
属性 中的 JSON 来执行此操作。如果他们使用的是屏幕,那么一切就绪。但如果不是...确保他们有他们可以使用的屏幕。您将通过查看
app.getAvailableSurfaces()
的结果或查看(未完全记录的)originalRequest.data.availableSurfaces
数组中的 JSON 来执行此操作。如果他们没有屏幕,您将需要找出最佳行动方案。但是如果他们确实有可用的屏幕表面(例如他们的 phone,目前)...您可以使用
app.askForNewSurface()
方法请求将它们转移到新表面,传递一条消息解释您为什么要进行切换,该消息将作为通知出现在设备,以及您需要的表面(屏幕)。如果用户同意,他们将在其移动设备上收到通知(使用该设备的常规通知系统)。当他们 select 收到通知时,智能助理将打开并向您的操作发送一个名为
actions_intent_NEW_SURFACE
的事件。您需要创建一个 Intent 来处理此事件并将其转发到您的 webhook。您的 webhook 应确认它在有用的表面上,然后继续对话并发送结果。
您可以在 https://developers.google.com/actions/assistant/surface-capabilities
查看更多关于处理不同表面的信息