Ошибка: BotFrameworkAdapter.processActivity (): 401 ОШИБКА - PullRequest
0 голосов
/ 14 июля 2020

Одно из внезапных сбоев в работе 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 -изображений. Я не могу исправить эту проблему.

...