2017-10-14 5 views
1

こんにちは私はapi.aiまたはdialogflowを使用してSkypeをビルドしています。とにかく、これは私のカスタムのペイロードである:Skypeのボットはwebhookからのレスポンスを表示していませんが、apiの埋め込みカスタムペイロードの正しい結果を表示します

{ 
"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でのカードのカルーセルとして結果を取得します。ウェブフックで同じことを試しても、メッセージは表示されません。誰かが私が間違っていることを教えてもらえますか?すでにStackoverflow questionとこのapi.ai linkをチェックしてください。しかしこれまでのところ使用されていません。

答えて

1

申し訳ありませんが、これを正しく取得すると、API.aiオンラインコンソールで応答を作成できますが、Webhookからjsonを生成すると失敗します。

参考までに、テストするのが少し難しいかもしれませんが、オンラインコンソールでは、右の "デフォルトの応答"をクリックして、 "Skype"の意図をテストする場所をクリックすることができます。このようにして、下部にエラーメッセージが表示され、エラーがあるかどうか、またその理由を確認することができます。

これで問題は解決しました。ドキュメントでは、データフィールドにwebhookのカスタムペイロードを埋め込む必要があると書かれていても、私は単純にそうしません。 API.aiはwebhookレスポンスのメッセージフィールドをオーバーライドすることでレスポンスを生成します。例が言葉以上のことを言っているので、私はあなたのチャットボットの意図のリッチカードのリストを2つ作成する完全な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ウェブフックのJson構造を使用してください。

私はあなたのセットアップ、あなたの質問を提供する方法をテストすることは非常に困難だと私は

+0

...またAPI.aiが文書化されていない機能を持ついくつかのケースではブラックボックスで、完全な例を与えてくれたのでありがとう応答のために多くの。 最初に、右のSkypeオプションを選択すると、受信/表示される応答は「利用不可」になります。私はもう一度jsonを見てみましょう。そして、 "メッセージ"を無効にしてみてください。 –

+0

ありがとうございます!私はメッセージをオーバーロードしたときに動作しています! :D –

関連する問題