2017-10-14 67 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 –