Пользовательский бот для команд Microsoft получает сообщение "BotAuthenticator не удалось аутентифицировать входящий запрос!" ошибка
Я делаю кастомного бота, используя Bot Framework, для команд Microsoft. В настоящее время я размещаю бота локально и туннелирую через ngrok, и я использую URL / api / messages. Я зарегистрировал бота в среде ботов и поместил дескриптор бота в BotId, идентификатор приложения в MiscrosoftAppId и пароль приложения в MicrosoftAppPassword в моем файле Web.config. Канал Teams включен и имеет статус "Выполняется" на странице Bot Framework. Бот работает на эмуляторе и работает на тестовом соединении на странице Bot Framework, но не работает в командах Microsoft.
Это то, что отправляется на мой бот:
"type": "message",
"id": "1497620296742",
"timestamp": "2017-06-16T13:38:19.303Z",
"localTimestamp": null,
"serviceUrl": "https://smba.trafficmanager.net/amer-client-ss.msg/",
"channelId": "msteams",
"from": {
"id": "29:1F9b3IgxC3x5ynp7nVxdSQ0bQ9MNyf7uKDZHrrCfRLyBbjOmdWSY4gyFLuR8cTRFmbXOeDN4f_uI65xSem6M5OA",
"name": "Ronnei, Evan T"
},
"conversation": {
"isGroup": true,
"id": "19:d02a9a4678924803964e6af1d9afc1ab@thread.skype;messageid=1497558943513",
"name": null
},
"recipient": null,
"textFormat": "plain",
"attachmentLayout": null,
"membersAdded": null,
"membersRemoved": null,
"topicName": null,
"historyDisclosed": null,
"locale": null,
"text": "Test Bot",
"summary": null,
"attachments": [
{
"contentType": "text/html",
"contentUrl": null,
"content": "<div><span itemscope=\"\" itemtype=\"http://schema.skype.com/Mention\" itemid=\"0\">Test Bot</span></div>",
"name": null,
"thumbnailUrl": null
}
],
"entities": [
{
"type": "clientInfo",
"locale": "en-US",
"country": "US",
"platform": "Windows"
}
],
"channelData": {
"teamsChannelId": "19:d02a9a4678924803964e6af1d9afc1ab@thread.skype",
"teamsTeamId": "19:e218343840af4d4397faf47bd3f4eada@thread.skype",
"channel": {
"id": "19:d02a9a4678924803964e6af1d9afc1ab@thread.skype"
},
"team": {
"id": "19:e218343840af4d4397faf47bd3f4eada@thread.skype"
},
"tenant": {
"id": "a9691d3f-49e3-46a8-8b23-ddad274d0523"
}
},
"action": null,
"replyToId": null,
"value": null,
"name": null,
"relatesTo": null
И это дает мне эту 401 Несанкционированную ошибку:
BotAuthenticator failed to authenticate incoming request!
Я очень начинающий, когда дело доходит до всего этого. Я следовал за доступными руководствами по документации Bot Framework, но это все еще не работает в командах. Я застрял на этом этапе. Дайте мне знать, если есть больше информации, которую я должен предоставить.
Очевидно, у меня недостаточно репутации, чтобы публиковать больше кода... Итак, вот мой manifest.json: https://pastebin.com/xK7y2VHX
2 ответа
Ваш прикрепленный манифест имеет несколько проблем:
bots.botsId
должен быть гидом из бота вашего botframework- и то и другое
needsChannelSelector
а такжеisNotificationOnly
должно быть bools, а не strings (например, "needsChannelSelector": false)
(packageName не является блокирующим элементом, но должен быть уникальной строкой, в идеале в обратной записи имени домена, если применимо.)
Вы также можете сравнить с нашим простым пакетом ботов здесь и убедиться, что вы также ознакомились с инструкциями по упаковке и боковой загрузке.
Здорово, что ваш бот работает. Вы создали файл manifest.json и загрузили его в команды? Ваш манифест содержит appID, botID и общую информацию о вашем боте. Вот инструкции по упаковке, если нет. Ниже этой страницы есть страница, которая показывает схему манифеста. Если вы загрузили его и все еще испытываете проблемы, пожалуйста, напишите снова!