Как заставить Cortana OAuth не использовать Magic Code - PullRequest
0 голосов
/ 16 декабря 2018

Я использовал botbuilder-js для написания собственного бота.В какой-то момент требуется, чтобы пользователь выполнил вход, поэтому бот отправляет диалоговое окно OAuthPrompt, в котором пользователь выполняет вход (с помощью Google, который я настроил в настройках подключения OAuth портала Azure).Он прекрасно работает в эмуляторе Bot Framework, но когда я интегрирую бота в Cortana, после входа пользователя он попадает на эту страницу:

enter image description here

Самое интересное, что это диалоговое окно является модальным, поэтому я не могу вставить код в чат Cortana, даже если бы захотел.

Что мне нужно сделать, чтобы Cortana не требовал этот магический код?

Ответы [ 2 ]

0 голосов
/ 10 января 2019

Следуя инструкциям в Google, я обнаружил, что URL-адрес перенаправления - это то, почему вам предлагается ввести магический код.Если вы используете инструменты Google и настроили внеполосную аутентификацию, вы получите URL-адрес авторизации OAuth, который выглядит следующим образом ...

Authorize this app by visiting this url: 
https://accounts.google.com/o/oauth2/v2/auth?access_type=offline&scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fdrive.metadata.readonly&response_type=code&client_id=[my client id]&redirect_uri=urn%3Aietf%3Awg%3Aoauth%3A2.0%3Aoob
Enter the code from that page here: [your code]

Не следует настраивать наband auth (иначе копировать / вставить auth urn:ietf:wg:oauth:2.0:oob) - потому что это означает, что менеджер удостоверений не вызывает redirect_url (или redirect_uri), когда поток завершается (сообщая службе ботов или cortana, что вы закончили вход), ичто более важно, вы, вероятно, не хотите, чтобы пользователь вставлял какой-то код, чтобы получить токен доступа.Если вы будете следовать https://developers.google.com/identity/protocols/OAuth2InstalledApp, вы увидите, что URI перенаправления должен быть либо фреймворками ботов, либо кортанами, а не вне полосы.Сделайте это, и код должен поступить программно в программу запроса.Вы можете настроить это в приложении Google, щелкнув по блейду учетных данных.

0 голосов
/ 20 декабря 2018

Уже ответил на это на GitHub botbuilder-js repo .Ответ для большей наглядности.

Похоже, это ошибка.Мне удалось воспроизвести проблему.Если вы скопируете код внизу, вы можете ввести его как новую команду для бота.Это ужасная работа, но она будет работать, пока пользовательский интерфейс не будет исправлен.Выполните следующие действия:

  1. Откройте Cortana и подключитесь к своему боту («скажи [бот] привет»)
  2. Выберите вариант входа
  3. Запишите магический код из окна
  4. Откройте Cortana и заново подключитесь к своему боту
    • Сообщите своему боту магический код («скажи [бот] [магический код]»)
    • Вход должен пройти успешно
  5. Взаимодействовать с вашим ботом
...