Ошибка эмулятора бота: POST 400 directline.postActivity - PullRequest
0 голосов
/ 10 июня 2019

Я пытаюсь запустить EchoBot по умолчанию в эмуляторе бота, и после настройки конечной точки, AppID и пароля приложения я получаю ошибку directline.postActivity POST 400.

Я запускаю BotЭмулятор Framework v4.4.1 и образец EchoBot C # v4.4.4, предоставленный Microsoft.Когда я собираюсь построить проект в Visual Studio, он выводит порт 3978 на localhost.После ввода конечной точки, идентификатора и пароля в эмулятор, он начинает подключаться.Тем не менее, бот не отвечает на любой введенный текст.Вот журнал из эмулятора:

[11:05:36]Emulator listening on http://localhost:50550
[11:05:36]ngrok not configured (only needed when connecting to remotely     hosted bots)
[11:05:36]Connecting to bots hosted remotely
[11:05:36]Edit ngrok settings
[11:05:37]
[11:05:37]POSTdirectline.conversationUpdate
[11:05:37]
[11:05:37]POSTdirectline.conversationUpdate
[11:05:37]POST200directline.startConversation
[11:05:40]-> messagehell0
[11:05:40]POST400directline.postActivity
[11:05:43]-> messagefdal
[11:05:43]POST400directline.postActivity

JSON Inspector for startConversation: 
{
  "conversationId": "33eb05b0-8b91-11e9-be8e-6726cb4f7972|livechat",
  "expires_in": 2147483647,
  "streamUrl": "",
  "token": "http://localhost:3978"
}

JSON Inspector for first message:
{
  "channelData": {
    "clientActivityID": "15601791407590.8nf8jwqjc2v"
  },
  "channelId": "emulator",
  "conversation": {
    "id": "33eb05b0-8b91-11e9-be8e-6726cb4f7972|livechat"
   },
  "entities": [
    {
      "requiresBotState": true,
      "supportsListening": true,
      "supportsTts": true,
      "type": "ClientCapabilities"
    }
  ],
  "from": {
    "id": "4866b179-bf7b-460e-8903-bda849861d88",
    "name": "User",
    "role": "user"
  },
  "id": "363766b0-8b91-11e9-be8e-6726cb4f7972",
  "localTimestamp": "2019-06-10T11:05:40-04:00",
  "locale": "en-US",
  "recipient": {
    "id": "33ea6970-8b91-11e9-ab08-9bfc690fe455",
    "name": "Bot",
    "role": "bot"
  },
  "serviceUrl": "http://localhost:50550",
  "text": "hell0",
  "textFormat": "plain",
  "timestamp": "2019-06-10T15:05:40.763Z",
  "type": "message"
}

JSON Inspector for first response:
{
  "channelData": {
    "clientActivityID": "15601791407590.8nf8jwqjc2v"
  },
  "channelId": "webchat",
  "entities": [
    {
      "requiresBotState": true,
      "supportsListening": true,
      "supportsTts": true,
      "type": "ClientCapabilities"
    }
  ],
  "from": {
    "id": "4866b179-bf7b-460e-8903-bda849861d88",
    "name": "User",
    "role": "user"
  },
  "locale": "en-US",
  "text": "hell0",
  "textFormat": "plain",
  "timestamp": "2019-06-10T15:05:40.760Z",
  "type": "message"
}

{
  "error": {
    "code": "ServiceError",
    "message": "response.text is not a function"
  }
}

Я попытался настроить настроенную конечную точку, которая соответствует состоянию, в котором настроен эмулятор, но это приводит только к бесконечному сообщению, которое даже непозвольте мне ввести любой текст в бот.Я также попытался переустановить эмулятор, но это ничего не изменило.

EDITED

Кроме того, эмулятор настроен на обход ngrok для локальных адресов, илокальное переопределение установлено на localhost.Это настройки по умолчанию, и переключение опции обхода или изменение локального переопределения не решает проблему.

Я пытался получить AppId и AppPassword из файла appsettings.json, закомментировав их и оставив пустыми строками, но ни одна из них не решила проблему.

Я также удалил и переустановил Visual Studio, BotFramework SDK, шаблон и эмулятор бота, чтобы посмотреть, не исправит ли это что-нибудь, но они этого не сделали ..

Последнее замечание, я попробовал следующееучебник Microsoft BotFramework по использованию эмулятора и любая попытка дает этот результат.

ОБНОВЛЕНИЕ

После переустановки Bot Framework Emulator v4.4.2 проблема все еще существует,но появляется новое сообщение об ошибке:

[14:03:32]Emulator listening on http://localhost:61486
[14:03:32]ngrok not configured (only needed when connecting to remotely 
hosted bots)
[14:03:32]Connecting to bots hosted remotely
[14:03:32]Edit ngrok settings
[14:03:32]The bot's Microsoft App Id or Microsoft App Password is 
incorrect.
[14:03:32]POSTdirectline.conversationUpdate
[14:03:32]The bot's Microsoft App Id or Microsoft App Password is 
incorrect.
[14:03:32]POSTdirectline.conversationUpdate
[14:03:32]POST200directline.startConversation

Я убедился, что они действительно совпадают, но я все еще получаю эту ошибку.

Ответы [ 2 ]

0 голосов
/ 28 июня 2019

Вы за прокси?У меня точно такая же проблема.Я за прокси-сервером.Тот же код работает очень хорошо на моем Mac дома.Но на ПК с Windows на работе это не так.Я не знаю, поможет ли это!Я думаю, что ошибка является общей, но суть в том, что она не может получить JWTToken с login.microsoftonline.com.

0 голосов
/ 11 июня 2019

Попробуйте удалить идентификатор приложения, пароль и ngrok из вашего решения, а также из эмулятора, и добавьте только конечную точку localhost в эмулятор

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...