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

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

Я только что включил эту опцию и добавил доверенный источник (https://mychatbot.azurewebsites.net/ ‹- Не настоящий, но хранится в Azure) в DirectLine.

Затем по коду сайта я запрашиваю токен:

const options = {
  method: 'POST',
  uri: 'https://directline.botframework.com/v3/directline/tokens/generate',
  headers: {
    "Authorization": "Bearer MyDirectLineSecret"
  },
  json: {
      User: {
        id: "dl_" + uuid.v4(),
        name: "UserTest"
      },
      trustedOrigins: ["https://mychatbot.azurewebsites.net/"]

}

Затем я делаю запрос на токен:

const response = await rp(options);
const token = response.token;

Таким образом, у меня есть токен, и когда я захожу на сайт моего бота (https://mychatbot.azurewebsites.net/) Я не отправляю запрос updateActivity и не могу отправить пользователю приветственное сообщение.

Не знаю, делаю ли я что-то не так с конфигурацией DirectLine.

Что я должен изменить? Я использую службу приложений для платформы ботов и напрямую вставляю URI веб-чата в надежные источники. Не знаю, ошибаюсь ли я в запросе токена.


person DavidCG    schedule 27.06.2019    source источник


Ответы (1)


Вы не делаете ничего плохого. Это известная проблема в службе коннектора DirectLine, и в настоящее время группа разработчиков работает над ее устранением. По сути, второе обновление диалога не отправляется, потому что идентификатор пользователя в токене вызывает ошибку. Дополнительные сведения см. В этой проблеме на Github. Я обязательно дам вам знать, когда она будет решена. А пока я бы рекомендовал взглянуть на веб-чат образец приветствия обратного канала.

person tdurnford    schedule 27.06.2019
comment
Хорошо, спасибо за информацию. Я просто сделал это как приветственное мероприятие Backchannel и сработал безупречно. Но сейчас у меня другая проблема. Раньше я мог подключиться к беседе пользователя в качестве агента с секретом прямой линии, идентификатором беседы и водяным знаком = 0, но теперь, с включенными расширенными функциями проверки подлинности прямой линии, я больше не могу присоединиться. Есть ли способ присоединиться к существующему разговору со вторым пользователем с улучшенной характеристикой? - person DavidCG; 28.06.2019
comment
Проблема, я думаю, такая же, как эта: github.com/MicrosoftDocs/bot-docs / issues / 412 - person DavidCG; 28.06.2019
comment
Рад слышать, что приветственное мероприятие по обратному каналу сработало для вас! На данный момент вам нужно добавить идентификатор пользователя в запрос токена, чтобы перезагрузить разговор. Команда разработчиков нашла исправление ошибки идентификатора пользователя и должна выпустить исправление в начале следующей недели. - person tdurnford; 28.06.2019
comment
@DavidCG Исправление должно быть выпущено сейчас. Отметка решения как принятого служит большему сообществу Stack Overflow и всем, у кого есть подобный вопрос. Если вы считаете, что моего ответа достаточно, примите его. Если нет, дайте мне знать, чем еще я могу помочь! - person tdurnford; 11.07.2019
comment
Где я могу увидеть отчет об исправлении? Я пытаюсь, но все равно получаю сообщение об ошибке Отсутствует идентификатор пользователя. Спасибо - person DavidCG; 23.07.2019
comment
Отчет находится в закрытом репо. Какой HTTP-клиент вы используете? Попробуйте установить в заголовке тип содержимого «application / json». Возможно, вам придется преобразовать объект пользователя в строку, и я считаю, что буква u в строке user написана в нижнем регистре. - person tdurnford; 23.07.2019