Пользовательский бот для команд 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 ответа

Решение

Ваш прикрепленный манифест имеет несколько проблем:

  1. bots.botsId должен быть гидом из бота вашего botframework
  2. и то и другое needsChannelSelector а также isNotificationOnly должно быть bools, а не strings (например, "needsChannelSelector": false)

(packageName не является блокирующим элементом, но должен быть уникальной строкой, в идеале в обратной записи имени домена, если применимо.)

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

Здорово, что ваш бот работает. Вы создали файл manifest.json и загрузили его в команды? Ваш манифест содержит appID, botID и общую информацию о вашем боте. Вот инструкции по упаковке, если нет. Ниже этой страницы есть страница, которая показывает схему манифеста. Если вы загрузили его и все еще испытываете проблемы, пожалуйста, напишите снова!

Другие вопросы по тегам