我一直在使用dialogflow为它的android应用程序开发一个聊天机器人,它的运行非常完美。但是现在我需要从我的机器人那里获得可点击的响应。例如,假设应用程序用户要求特定的位置。我希望Dialogflow chatbot返回一个按钮或一个链接作为响应,以便用户可以单击它并重定向到google地图。
我已经阅读了很多教程,博客和文档,但找不到满意的答案。如果您也可以通过代码示例帮助我,将不胜感激。
提前谢谢
答案 0 :(得分:2)
如果您正在使用Dialogflow通过Detect Intent API与自己的系统(与Facebook Messenger,Google上的Actions或其他机器人平台类似)进行集成,则可以在{{ 3}}是您的Webhook响应的对象。在对https://dev.mysql.com/doc/refman/8.0/en/innodb-adaptive-hash.html对象的payload
中的Detect Intent调用的响应中,这会传回给您。
您可以在此处包括所需的任何信息,并根据需要进行渲染。
答案 1 :(得分:2)
在Dialogflow的“意图”部分中,单击“响应”中的“ Google助手”。 选择用于提供可点击链接的“链接建议”。 如果您只希望按钮没有链接,则可以使用“建议筹码”。 在UI代码上,您需要对其进行解析并将其呈现为可点击的按钮。
有关更多详细信息,请参阅https://www.kommunicate.io/blog/rich-message-button-response-dialogflow-chatbot/
答案 2 :(得分:0)
为此,您可能必须使用Google 地图URL 。这些提供了通用的跨平台解决方案。
请按照以下步骤操作:
根据用户的响应,对地图URL进行编码,如此处的示例https://developers.google.com/maps/documentation/urls/guide
例如,考虑上面指南中的URL
https://www.google.com/maps/search/?api=1&query=47.5951518,-122.3316393&query_place_id=ChIJKxjxuaNqkFQR3CK6O1HNNqY
然后使用 基本卡中的按钮如下
app.intent('demo', (conv, params) => {
// Create a basic card with the URL
conv.ask(new BasicCard({
text: `This is a basic card with Map Response.`,
subtitle: 'This is a subtitle',
title: 'Title: Open Map',
buttons: new Button({
title: 'Open Map as per URL',
url: 'https://www.google.com/maps/search/?api=1&query=47.5951518,-122.3316393&query_place_id=ChIJKxjxuaNqkFQR3CK6O1HNNqY',
})
}));
}
您还可以按以下说明使用其他响应(例如linkOutSuggestion): https://developers.google.com/actions/assistant/responses
希望有帮助!