Одно из внезапных сбоев в работе adapter.processActivity с этими двумя сообщениями об ошибках при отправке сообщения чата боту:
1. Сообщение об ошибке:
JwtTokenExtractor.getIdentity:err! ReferenceError: XMLHttpRequest is not defined
dev_server | at /var/huforce/node_modules/whatwg-fetch/dist/fetch.umd.js:484:17
...
dev_server | at /var/huforce/node_modules/botframework-connector/lib/auth/openIdMetadata.js:14:71
dev_server | at new Promise (<anonymous>)
dev_server | at __awaiter (/var/huforce/node_modules/botframework-connector/lib/auth/openIdMetadata.js:10:12)
dev_server | at OpenIdMetadata.getKey (/var/huforce/node_modules/botframework-connector/lib/auth/openIdMetadata.js:30:16)
dev_server | at JwtTokenExtractor.<anonymous> (/var/huforce/node_modules/botframework-connector/lib/auth/jwtTokenExtractor.js:86:56)
2. Сообщение об ошибке:
(node:18) UnhandledPromiseRejectionWarning: Error: BotFrameworkAdapter.processActivity(): 401 ERROR
dev_server | ReferenceError: XMLHttpRequest is not defined
dev_server | at /var/huforce/node_modules/whatwg-fetch/dist/fetch.umd.js:484:17
dev_server | at new Promise (<anonymous>)
dev_server | at fetch (/var/huforce/node_modules/whatwg-fetch/dist/fetch.umd.js:477:12)
dev_server | at OpenIdMetadata.<anonymous> (/var/huforce/node_modules/botframework-connector/lib/auth/openIdMetadata.js:54:31)
dev_server | at Generator.next (<anonymous>)
dev_server | at /var/huforce/node_modules/botframework-connector/lib/auth/openIdMetadata.js:14:71
dev_server | at new Promise (<anonymous>)
dev_server | at __awaiter (/var/huforce/node_modules/botframework-connector/lib/auth/openIdMetadata.js:10:12)
dev_server | at OpenIdMetadata.refreshCache (/var/huforce/node_modules/botframework-connector/lib/auth/openIdMetadata.js:53:16)
dev_server | at OpenIdMetadata.<anonymous> (/var/huforce/node_modules/botframework-connector/lib/auth/openIdMetadata.js:34:32)
dev_server | at Generator.next (<anonymous>)
dev_server | at /var/huforce/node_modules/botframework-connector/lib/auth/openIdMetadata.js:14:71
dev_server | at new Promise (<anonymous>)
dev_server | at __awaiter (/var/huforce/node_modules/botframework-connector/lib/auth/openIdMetadata.js:10:12)
dev_server | at OpenIdMetadata.getKey (/var/huforce/node_modules/botframework-connector/lib/auth/openIdMetadata.js:30:16)
dev_server | at JwtTokenExtractor.<anonymous> (/var/huforce/node_modules/botframework-connector/lib/auth/jwtTokenExtractor.js:86:56)
dev_server | at BotFrameworkAdapter.<anonymous> (/var/huforce/node_modules/botbuilder/lib/botFrameworkAdapter.js:674:27)
dev_server | at Generator.throw (<anonymous>)
dev_server | at rejected (/var/huforce/node_modules/botbuilder/lib/botFrameworkAdapter.js:12:65)
dev_server | at processTicksAndRejections (internal/process/task_queues.js:97:5)
Подробности: Я создал своего бота через App-Studio. У меня нет подписки на azure. Эмулятором тоже не пользуюсь. Бот работает локально. Я использую ngrok для туннелирования запросов к моему P C. Мой nodejs -сервер, на котором размещается конечная точка обмена сообщениями, работает в контейнере docker.
Что я пробовал:
- Я пробовал разные версии вашего (потрясающего) пакета
- Я проверил идентификатор клиента и секрет клиента
- Я создал новый секрет клиента
- Я проверил свой идентификатор клиента и мой client-secret
- Я проверил свою конечную точку обмена сообщениями
- Я проверил системное время
- Я создал нового бота через App Studio и
- Установка xmlhttprequest вручную
Код:
...
const bot = new Bot();
export const adapter = new BotFrameworkAdapter({
appId: msteams.CLIENT_ID,
appPassword: msteams.CLIENT_SECRET
});
MicrosoftAppCredentials.trustServiceUrl(
"https://smba.trafficmanager.net/emea/"
);
...
expressApp.post("/bot", secure((req, res) => {
adapter.processActivity(req, res, async context => { // <-- error
await bot.run(context);
});
}));
Я в отчаянии, потому что нам нужно поставить новую версию нашего бота. Но я просто не могу исправить эту проблему.
Я очень благодарен за любую помощь.
Изменить:
Произошла что-то странное. У меня от бота старый docker контейнер. Эта версия работает хорошо. Но при запуске того же старого кода в новом docker возникает ошибка. Пробовал разные варианты docker -изображений. Я не могу исправить эту проблему.