Получение 403 при подключении локального бота к локальному клиенту веб-чата (хотя работает с эмулятором)

#botframework #ngrok #direct-line-botframework #web-chat

#botframework #ngrok #прямая линия-botframework #веб-чат

Вопрос:

Я пытаюсь подключить свой локальный клиент веб-чата к своему локальному боту, но он выдает 403. Я попытался добавить localhost:3000 (порт для моего веб-чата) в качестве надежного источника, но это все еще не помогает. Тем не менее, это работает просто отлично, если я использую эмулятор или postman (часть генерации токена для подключения через Directline)

Вот все, что я сделал:

  • Запустил моего локального бота и использовал ngrok, чтобы сопоставить его с интернет-адресом.
  • Изменена конечная точка обмена сообщениями на https://xxxxx.ngrok.io/api/messages
  • Настроил канал прямой связи, взял секретный ключ и использовал его в моем клиенте веб-чата react (работающем на порту 3000), чтобы установить прямое соединение, используя createDirectLine from botframework-webchat и передавая токен. Я подключаюсь к этому API в этом формате:
 POST https://directline.botframework.com/v3/directline/tokens/generate
Authorization: Bearer SECRET
  

После этого консоль выдает ошибку 403 и не позволяет мне продолжить. Тем не менее, я могу сгенерировать токен через postman, и тот же URL-адрес ngrok отлично работает с эмулятором bot framework.

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

Спасибо.

Ответ №1:

отлично работает с эмулятором bot framework

При тестировании с помощью эмулятора вы используете имя пользователя / пароль или оно пустое? Убедитесь, что MicrosoftAppID и MicrosoftAppPassword настроены в боте при локальном запуске и вы используете NGROK для перехода по каналам.

Комментарии:

1. Я не использую имя пользователя или пароль. Это пустое @dana-v

2. Хорошо, при тестировании через Azure (даже при обратном указании на вашего локального запущенного бота через ngrok) вы должны указать идентификатор приложения и пароль, настроенные для регистрации каналов приложений / ботов.

3. Я уже пытался это сделать. Это выдает ту же ошибку 403, что и в веб-чате. Единственный способ, которым это работает, — через эмулятор без кредитов. Я прочитал несколько статей, и в них говорится, что мне нужно запустить автономный directline, чтобы это сработало. Попробую это и свяжусь с вами, если это сработает.

4. Удалось ли вам решить вашу проблему @NaserMohdBaig? Было бы здорово узнать, как (в этом случае), поскольку я сталкиваюсь с чем-то подобным.

5. @pgoldweic, я не помню этапы его настройки, поскольку он был из моей предыдущей компании, но использование offline-directline помогло мне: github.com/ryanvolum/offline-directline Лучшим местом для начала была бы документация к вышеуказанному пакету и некоторые методы проб и ошибок. Хотел бы я помочь вам больше. Почему бы вам не попробовать и не сообщить мне, если возникнут какие-либо ошибки? Возможно, он вернется ко мне, если я увижу какие-либо ошибки;) Удачи