Я заметил, что вы не запускаете бота и не запускаете диалог. Когда я пробую ваш код как есть, я получаю ошибку 502. Когда я ввожу код для бота, ошибка исчезает, и бот отвечает, как и ожидалось.
Поскольку у меня нет доступа ко всем вашим файлам, мне пришлось удалить связанные вызовы кода. Поэтому я не могу сказать, связана ли полученная вами ошибка с каким-либо кодом.
Я использовал connect.listen () в server.post для «api / messages». Определение коннектора, как показано ниже, следует базовой настройке, описанной в документации для сборки бота с использованием Node.
Надеюсь, это поможет.
Стив.
'use string';
const builder = require('botbuilder');
const restify = require('restify');
require('dotenv').config();
let port = process.env.port || process.env.PORT || '3978';
let server = restify.createServer({
formatters: {
'text/html': function (req, res, body) {
return body.toString();
}
}
});
// change done for restify 5.X+ (mapParams should be specified @ true)
server.use(restify.plugins.bodyParser({
mapParams: true
}));
server.listen(port, () => {
console.log('%s server listening to %s', server.name, server.url);
});
// entry point of your bot
let connector = new builder.ChatConnector({
appId: process.env.MicrosoftAppId,
appPassword: process.env.MicrosoftAppPassword,
openIdMetadata: process.env.BotOpenIdMetadata
});
server.post('/api/messages', connector.listen());
//callback handling
server.post('/api/oauthcallback', (req, res, next) => {
var authorizationCode = req.params.code;
if (authorizationCode !== undefined) {
console.log('authorization code provided');
}
else {
console.log('authorization code not provided');
}
});
// inMemoryStorage should only be used for testing. It is not stable for a production environment
let inMemoryStorage = new builder.MemoryBotStorage();
let bot = new builder.UniversalBot(connector).set('storage', inMemoryStorage);
bot.dialog('/', [
function (session) {
session.send('Hi');
}
]);