2017-10-14 55 views
1

您好我正在使用api.ai,或dialogflow,现在调用在Skype中建立一个僵尸程序。无论如何,这是我的自定义负载:Skype的bot没有显示来自webhook的回应,但显示正确的结果为嵌入式自定义有效载荷的api ai

{ 
"skype": { 
"type": "", 
"attachmentLayout": "", 
"text": "", 
"attachments": [ 
    { 
    "contentType": "", 
    "content": { 
     "title": "", 
     "images": [ 
     { 
      "url": "" 
     } 
     ], 
     "buttons": [ 
     { 
      "type": "", 
      "title": "", 
      "value": "" 
     } 
     ] 
    } 
    } 
] 
} 
} 

这里是我的网络挂接响应:

"data": { 
    "skype": { 
     "type": "message", 
     "attachmentLayout": "carousel", 
     "text": "Here you go!", 
     "attachments": [ 
     { 
      "contentType": "application/vnd.microsoft.card.hero", 
      "content": { 
      "title": "Italian Cassoulet (Italian Chili)", 
      "images": [ 
       { 
       "url": "http://img.food.boxspace.in/image/rbk_57139479f2705/hdpi.jpg" 
       } 
      ], 
      "buttons": [ 
       { 
       "type": "openUrl", 
       "title": "View Recipe", 
       "value": "http://recipebk.com/Share.html#url=rbk_57139479f2705" 
       } 
      ] 
      } 
     } 
     ] 
    } 
    } 
} 

现在,如果我嵌入此回应,我得到的结果是卡在Skype上一个旋转木马。但是当我尝试与我的webhook相同时,不显示任何消息。有人能告诉我我做错了什么吗?已经检查了Stackoverflow questionapi.ai link,但迄今为止它一直没有用。

回答

1

好的,所以如果我正确地得到这个,在API.ai在线控制台上创建响应的工作,但是当你从你的webhook生成JSON失败?

仅供参考,它可能有点难以测试,但在在线控制台中,您可以点击右侧的“默认响应”,以测试您的意图为“Skype”。这样,您可以查看底部的错误消息,查看是否有任何错误以及原因。

既然文档说你应该从webhook中嵌入数据字段中的自定义有效载荷,那么我简直不会。我只是按照完全相同的方式API.ai通过覆盖webhook响应中的消息字段来生成响应。举例来说,不仅仅是话语,我会给你完整的webhook响应,为我的聊天机器人的意图创建几个名片。正如您注意到的,我将所有内容都放入了Json的消息字段中。

{ 
    "speech": "", 
    "displayText": "", 
    "data": { 

    }, 
    "contextOut": [ 

    ], 
    "source": "Webhook", 
    "messages": [ 
    { 
     "type": 4, 
     "platform": "skype", 
     "speech": "", 
     "payload": { 
     "skype": { 
      "attachmentLayout": "list", 
      "attachments": [ 
      { 
       "contentType": "application\/vnd.microsoft.card.hero", 
       "content": { 
       "title": "Unit 2A", 
       "subtitle": "", 
       "text": "These timeslots are available for 2017-10-16", 
       "images": [ 

       ], 
       "buttons": [ 
        { 
        "type": "imBack", 
        "title": "from 13:00 until 14:00 Unit 2A", 
        "value": "from 13:00 until 14:00 Unit 2A" 
        }, 
        { 
        "type": "imBack", 
        "title": "from 14:00 until 15:00 Unit 2A", 
        "value": "from 14:00 until 15:00 Unit 2A" 
        }, 
        { 
        "type": "imBack", 
        "title": "from 15:00 until 16:00 Unit 2A", 
        "value": "from 15:00 until 16:00 Unit 2A" 
        } 
       ] 
       } 
      }, 
      { 
       "contentType": "application\/vnd.microsoft.card.hero", 
       "content": { 
       "title": "Unit 1", 
       "subtitle": "", 
       "text": "These timeslots are available for 2017-10-16", 
       "images": [ 

       ], 
       "buttons": [ 
        { 
        "type": "imBack", 
        "title": "from 13:00 until 14:00 Unit 1", 
        "value": "from 13:00 until 14:00 Unit 1" 
        }, 
        { 
        "type": "imBack", 
        "title": "from 14:00 until 15:00 Unit 1", 
        "value": "from 14:00 until 15:00 Unit 1" 
        }, 
        { 
        "type": "imBack", 
        "title": "from 15:00 until 16:00 Unit 1", 
        "value": "from 15:00 until 16:00 Unit 1" 
        }, 
        { 
        "type": "imBack", 
        "title": "from 16:00 until 17:00 Unit 1", 
        "value": "from 16:00 until 17:00 Unit 1" 
        } 
       ] 
       } 
      } 
      ] 
     } 
     } 
    } 
    ] 
} 

但请注意,API.ai将简单地覆盖消息这种方式,并将它传递给Skype。有关智能卡的更多信息,请参阅:https://docs.microsoft.com/en-us/bot-framework/rest-api/bot-framework-rest-connector-add-rich-cards并在您的api.ai webhook中使用Json结构。

我已经给予了充分的例子,因为它是非常困难的我测试您的设置您提供您的问题的方式,也API.ai在某些情况下无证功能是黑箱...

+0

谢谢你很多回应。 首先,当我选择右边的Skype选项时,收到/显示的响应是'不可用'。我会尝试再次查看json,然后尝试覆盖“消息”。 –

+0

谢谢!它正在工作,当我超载的消息! :d –

相关问题