Как добавить ответ бота в веб-чат? - PullRequest
0 голосов
/ 04 июня 2018

Я не могу получить ответ от бота и добавить его в веб-чат, предоставленный MS Botframework.

Вот что я сделал до сих пор:

  1. Создан бот на https://dev.botframework.com/ (без миграции)

  2. Встроенный веб-чат и прямая линия

  3. Создан сервер прослушивания фляг и сгенерированный HTTPS с использованием ngrok

  4. Предоставил адрес созданного сервера в качестве конечной точки обмена сообщениями для бота

enter image description here

Сгенерировал HTML-страницу, используя приведенный ниже код (работает локально без сервера)
<html>
  <head>
    <link href="https://cdn.botframework.com/botframework-webchat/latest/botchat.css" rel="stylesheet" />
  </head>
  <body>
    <div id="bot"/>
    <script src="https://cdn.botframework.com/botframework-webchat/latest/botchat.js"></script>
    <script>
      BotChat.App({
        directLine: { secret: 'direct_line_secret_key' },
        user: { id: 'userid' },
        bot: { id: 'botid' },
        resize: 'detect'
      }, document.getElementById("bot"));
    </script>
  </body>
</html>

Теперь я могу отправлять сообщения из пользовательского интерфейса как пользователь и могузахватить его на сервере прослушивателя флеш.
Но как мне ответить с сервера, чтобы сообщение поступило от бота и добавилось в пользовательский интерфейс?

Я что-то упустил?

Я пытался https://directline.botframework.com/v3/directline/conversations/{convoId}/activities отправить запрос, но он снова возвращается только на сервер и не добавляется в веб-чат.

data = json.dumps({"type": "message","from":{"id":"botid"},"text": "Hii!"})

requests.post('https://directline.botframework.com/v3/directline/conversations/' + r['conversation']['id'] + '/activities', 
headers={"Authorization": "Bearer " + "secret_key", "Content-Type": "application/json", "Content-Length": "512"},data=data

ПРИМЕЧАНИЕ: Я использую Botframework только для пользовательского интерфейса веб-чата и ничего больше.

РЕДАКТИРОВАТЬ 1:

отправил это из веб-чата

http://bcebb07a.ngrok.io/webhook' [POST]> ************************************************************************** {'тип':'message', 'id': '5DvIa5ImiPF4G6WnGlPYyY | 0000002', 'timestamp': '2018-06-05T06: 51: 45.3174659Z', 'serviceUrl': 'https://directline.botframework.com/',' channelId ':' directline ','from': {'id': 'sid'}, 'разговорon ': {' id ':' 5DvIa5ImiPF4G6WnGlPYyY '},' получатель ': {' id ':' one_assist @ CrbpWod1mw8 ',' name ':' OneAssist '},' textFormat ':' plain ',' locale ':'en-US ', ' text ':' привет, как дела? , 'channelData': {'clientActivityId': '1528180308547.7414264322396316.5'}} 5DvIa5ImiPF4G6WnGlPYyY

################################################################### {'messages': [{'id':

'5DvIa5ImiPF4G6WnGlPYyY | 0000000', 'dialogId': '5DvIa5ImiPF4G6WnGlPYyY', 'созданный': '2018-06-05T06: 32: 50.9651813Z ',' from ':' sid ',' text ':' hello ',' channelData ': {' clientActivityId ':' 1528180308547.7414264322396316.0 '},' images ': [],' attachments ': []}, {'id': '5DvIa5ImiPF4G6WnGlPYyY | 0000001', 'dialogId': '5DvIa5ImiPF4G6WnGlPYyY', 'создано': '2018-06-05T06: 47: 14.1602925Z', 'from': 'sid', text ''how are you', 'channelData': {'clientActivityId': '1528180308547.7414264322396316.3'}, 'images': [], 'attachments': []}, {'id': '5DvIa5ImiPF4G6WnGlPYyY | 0000002', 'беседа':' 5DvIa5ImiPF4G6WnGlPГГГГ, 'созданный': '2018-06-05T06: 51: 45.3174659Z', 'from': 'sid', 'text': 'привет, как дела', 'channelData': {'clientActivityId': '1528180308547.7414264322396316.5 '},' images ': [],' attachments ': []}],' watermark ':' 2 '}

{"error": {"code": "BotError", "сообщение ":" Не удалось отправить действие: истекло время ожидания бота "}," httpStatusCode ": 504} 127.0.0.1 - - [05 / Jun / 2018 12:22:12]" POST / webhook HTTP / 1.1 "200 - ************************************************************************** http://bcebb07a.ngrok.io/webhook' [POST]> ************************************************************************** {'type': 'dialogUpdate', 'id': 'D3XJ6CAaVsc', 'timestamp': '2018-06-05T06: 51: 56.7508828Z', 'serviceUrl': 'https://directline.botframework.com/',' channelId':' directline ',' from ': {' id ':' 5DvIa5ImiPF4G6WnGlPYyY '},' разговор ': {' id ':' 5DvIa5ImiPF4G6WnGlPYyY}}, 'получатель': {'id': 'one_assist @ Cmb8Wname ':' OneAssist '},' membersAdded ': [{' id ':' botid '}]} 5DvIa5ImiPF4G6WnGlPYyY

#################################################################### {'messages': [{'id':

'5DvIa5ImiPF4G6WnGlPYyY | 0000000', 'dialogId': '5DvIa5ImiPF4G6WnGlPYyY', 'созданный ':' 2018-06-05T06: 32: 50.9651813Z ',' from ':' sid ',' text ':' hello ',' channelData ': {' clientActivityId ':'1528180308547.7414264322396316.0'}, 'images': [], 'attachments': []}, {'id': '5DvIa5ImiPF4G6WnGlPYyY | 0000001', 'dialogId': '5DvIa5ImiPF4G6Wy' 2018 '' 2018-06-200805T06: 47: 14.1602925Z ',' from ':' sid ',' text ':' how are you ',' channelData ': {' clientActivityId ':' 1528180308547.7414264322396316.3 '},' images ': [],'attachments ': []}, {' id ':' 5DvIa5ImiPF4G6WnGlPYyY | 0000002 ',' разговор ID: '5DvIa5ImiPF4G6WnGlPYyY', 'создано': '2018-06-05T06: 51: 45.3174659Z', '' из, 'text': 'hello how you you', 'channelData': {'clientActivityId': '1528180308547.7414264322396316.5'}, 'images': [], 'attachments': []}], 'watermark': '2'}

{"error": {"code": "BotError", "message": "Не удалось отправить действие: истекло время ожидания бота"}, "httpStatusCode": 504} 127.0.0.1 - - [05 / Jun / 2018 12:22:32] "POST / webhook HTTP / 1.1" 200 -

# отправил это с сервера с кодом ************************************************************************** http://bcebb07a.ngrok.io/webhook' [POST]> ************************************************************************** {'type': 'message', 'id': '5DvIa5ImiPF4G6WnGlPYyY | 0000003', 'timestamp': '2018-06-05T06: 52: 16.6925987Z', 'serviceUrl': 'https://directline.botframework.com/', 'channelId': 'directline', 'from': {'id': 'botid'}, 'разговор': {'id': '5DvIa5ImiPF4G6WnGlPYyY'}, 'получатель': {'id': 'one_assist@ CrbpWod1mw8 ',' name ':' OneAssist '}, ' text ':' Hii! '} 5DvIa5ImiPF4G6WnGlPYyY

##########################################################################{'messages': [{'id':

'5DvIa5ImiPF4G6WnGlPYyY | 0000000', 'разговор ID:' 5DvIa5ImiPF4G6WnGlPYyY ',' создано ':' 2018-06-05T06: 32: 50.9651813Z '' изsid ',' text ':' hello ',' channelData ': {' clientActivityId ':' 1528180308547.7414264322396316.0 '},' images ': [],' attachments ': []}, {' id ':' 5DvIa5ImiPF4G6WnGlPYyY |0000001 ',' разговор ID: '5DvIa5ImiPF4G6WnGlPYyY', 'создан': '2018-06-05T06: 47: 14.1602925Z', 'from': 'sid', 'text': 'how are you', 'channelData':{'clientActivityId': '1528180308547.7414264322396316.3 '},' images ': [],' attachments ': []}, {' id ':' 5DvIa5ImiPF4G6WnGlPYyY | 0000002 ',' разговорId ':' 5DvIa5ImiPF4G6WnGlPYyY ',' создан ':' 2018-06-06: 45.3174659Z ',' from ':' sid ',' text ':' hello how are you ',' channelData ': {' clientActivityId ':' 1528180308547.7414264322396316.5 '},' images ': [],' attachments ': []}, {'id': '5DvIa5ImiPF4G6WnGlPYyY | 0000003', 'разговор ID:' 5DvIa5ImiPF4G6WnGlPYyY ',' создано ':' 2018-06-05T06: 52: 16.6925987Z ',' из ': bo'text ':' Hii! ',' images ': [],' attachments ': []}],' watermark ':' 3 '} https://directline.botframework.com/v3/directline/conversations/5DvIa5ImiPF4G6WnGlPYyY/activities/

https://directline.botframework.com/v3/conversations/5DvIa5ImiPF4G6WnGlPYyY/activities {"error": {" code ":" BotError "," message ":" Не удалось отправить действие: истекло время ожидания бота "}," httpStatusCode ": 504}

1 Ответ

0 голосов
/ 05 июня 2018

У меня была похожая проблема при использовании ngrok, и я замечаю, что в ваших логах есть ссылки на 127.0.0.1.Попробуйте добавить параметр -host-header в командную строку ngrok.

Например, я использую

ngrok http -host-header=localhost:55486 55486

Где 55486 - номер порта, на котором находится моя конечная точка.

...