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

С помощью следующего URL я нашел способ извлечь секретные ключи бота веб-чата:

https: //dev.botframework.com/api/bots/ {bot_id} / channel/ webchat "

Возвращает ответ JSON, например: секретные ключи веб-чата

Это хорошо работает, когда я вызываю его в браузере и когда явошел в систему на https://dev.botframework.com/. Теперь я хотел бы написать сценарий с помощью powershell. Прежде чем приступить к сценарию, я попытался вызвать его с помощью Postman. Моя проблема в том, что мне нужен токен (токен доступа?) для вызова с помощьюПочтальон. Если я возьму IntercomAuthCookie из сеанса браузера в заголовки Postman, я получу ожидаемый результат, как здесь .

Теперь мой вопрос: с помощью какого API можно получитьIntercomAuthCookie?

Я пытался получить токен доступа на предъявителя здесь с OAuth на https://login.microsoftonline.com/common/oauth2/v2.0/token,, но когда я использую его по другому запросу, я получаю " логин истек "

1 Ответ

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

После нескольких недель и долгих поисков я нашел три способа получить секретные ключи канала WebChat.


Подход к браузерной разработке Dev

С помощью следующего URL вы можете получить егов формате JSON:

https: //dev.botframework.com/identity/signin? requestUrl = / api / bots / {botId} / channel / webchat

Он спросит вас о ваших учетных данных и перенаправит вас на https://dev.botframework.com/api/bots/ndombotId‹/channels/webchat.


подход Azure Cli (не рекомендуется)

С помощью этого поста Как программно получить секрет DirectLine приложения чат-бота Microsoft Bot Framework? , я нашел следующую команду:

azбот-чат-шоу -n "{botId}" -g "{resourceGroupName}" - с секретами --subscription "{subscriptionId}"

Не забудьтевойти в систему (с помощью команды «az login») перед выполнением вышеуказанной команды.

Почему этот подходch не рекомендуется?
Я понял, что после выполнения этой команды он повредил канал WebChat в Azure, и я не смог вернуть его к работе.Вот почему я настоятельно не рекомендую использовать его.


Подход HTTP GET-запроса - не требуется браузер (наиболее рекомендуется для сценариев)

После долгих исследованийв исходном коде Python Azure Cli Bot и Azure Mgmt Bot Service я обнаружил следующий запрос:

https: //management.azure.com/subscription/ {subscriptionId} / resourceGroups / {resourceGroupName} /providers/Microsoft.BotService/botServices/ {botId} / channel / WebChatChannel / listChannelWithKeys ? api-version = 2018-07-12

Не забудьте такжедобавьте токен носителя доступа в заголовок ключа авторизации запроса.


Я проверил все подходы.Все заработало как положено.

...