json - 在Skype中获取dialogflow V2的轮播列表

标签 json carousel dialogflow-es

我一直在尝试获取 Skype 上的轮播列表。我已经使用了指定的 JSON https://dialogflow.com/docs/reference/api-v2/rest/v2beta1/projects.agent.intents#CarouselSelect 但 Skype 没有渲染它或 Facebook Messenger。如果我使用发送卡列表 https://dialogflow.com/docs/reference/api-v2/rest/v2beta1/projects.agent.intents#Card 然后 Skype 正在渲染垂直 ListView ,而 Messenger 正在渲染轮播列表。并且使用消息对象的轮播选择在 Dialogflow V1 中工作正常 https://dialogflow.com/docs/reference/agent/message-objects#custom_payload_message_object_2使用它我可以发送自定义有效负载来获取各个平台,并且在 V2 中以有效负载发送它也没有帮助。 有没有办法使用DialogFlow V2在Skype中实现轮播列表?如果可以使用有效负载实现此目的,请使用 JSON 进行回复。

提前致谢!

最佳答案

我终于破解了!

轮播中的 Messenger 中的默认 ListView 和 Skype 的默认 ListView 是普通垂直 ListView 。对于我见过的 Skype 机器人开发的大多数官方文档,Skype 鼓励其开发人员使用定义的库,使用这些库创建 JSON 并将其发送到机器人。另一方面,Messenger 拥有许多有关 JSON 格式的资源。

在 DialogFlow V1 中: 在消息对象中,我们可以添加详细信息,例如有效负载的类型以及我们希望将其发送到的平台。更多内容可阅读 https://dialogflow.com/docs/reference/agent/message-objects

所以,Skype中的轮播是通过添加Skype bot的属性attachmentType来实现的 这指定该项目是否为轮播,否则为普通 ListView 。 JSON 格式指定于 https://miningbusinessdata.com/dialogflow-api-ai-skype-integration/

这就是将自定义负载数据发送到 Skype 机器人的方式。在这里,我们可以发送带有类型的 attachments 数组中的项目列表,Skype 将解释它。

在 DialogFlow V2-Beta 中: 我发现有两种方法可以使用 V2-Beta 向 Skype/Messenger 发送数据。

  1. 使用dialogflow给出的预定义模板 https://dialogflow.com/docs/reference/api-v2/rest/v2beta1/projects.agent.intents#Message 这提供了卡片、图像、轮播 View 。当 card 对象列表发送到 Skype 时,它​​会将其显示为垂直列表,而当发送到 Messenger 时,它会将其显示为轮播列表。但是,Skype 和 Messenger 似乎不支持 carousel 模板 因此,我们剩下的另一个选择是在自定义负载中发送数据。

  2. 为了在自定义有效负载中发送它,V2 中有 2 个有效负载。 webHookResponseMessage 对象内部 https://dialogflow.com/docs/reference/api-v2/rest/v2beta1/projects.agent.intents#Message

另一个有效负载位于我们将发送的webHookResponse中。 https://dialogflow.com/docs/reference/api-v2/rest/v2beta1/WebhookResponse

这两个都是 JSON 对象,并且在 Message 对象中发送它实际上可以工作并且具有正确的 JSON 格式。作为自定义负载发送时,Skype 的 JSON 格式的可用资源非常少。

"platform":"SKYPE",
"payload":
       {
        "skype":
            {
              "attachmentLayout":"carousel",                                                                    
              "attachments":[
                      {        
                        "contentType":"application/vnd.microsoft.card.hero",
                        "content":{
                                    "title":
                                    "subtitle":
                                    "images":[{"url":}],
                                    "buttons":[{
                                        "type":"postBack",
                                        "title": 
                                        "value": 
                                    }]
                          }
                 ]
             }
        }

使用此卡列表将发送到 Skype,并且该列表显示为轮播列表。后来搜索才发现 https://tsmatz.wordpress.com/2016/08/31/microsoft-bot-framework-messages-howto-image-html-card-button-etc/ 它包含我们可以发送到 Skype 的不同 JSON 的列表

祝你编码愉快!

关于json - 在Skype中获取dialogflow V2的轮播列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49405991/

相关文章:

json - swift 2中NSJSONSerialization的线程中断1.1

jquery - Bootstrap - 暂停轮播

dialogflow-es - 在 DialogFlow (API.AI) 中集成 Telegram Bot 的消息格式

dialogflow-es - Google Assistant 在 Dialogflow 中重复之前的消息时遇到问题

node.js - 从实时数据库获取 json 数据到 Dialogflow 内联编辑器(谷歌助手)

arrays - 尝试使用 PostgreSQL 在 Rails 4 中创建 json 对象数组时出错

javascript - ionic 分页

javascript - 具有 "NULL"值的 JSON 对象在通过 HTTP 请求发送到服务器时更改为银行值

html - Bootstrap 全屏轮播

jQuery - 尝试创建 'endless slideshow' 的图像