У меня есть существующее приложение узла / экспресс-чата, которое подключается к нескольким чат-платформам, используя шаблон проектирования промежуточного программного обеспечения ExpressJS next (), next (). Я отправляю ответ 200 в самом начале, чтобы подтвердить получение сообщения, и отправляю новый запрос POST, чтобы отправить сообщение из моего последнего промежуточного программного обеспечения.
app.post("/bots", receiveMsg, doStuff, formatAndSendMsg, catchErrors);
Теперь я хочу интегрировать Skype как канал для своего бота, но библиотека NodeJS для bot-framework имеет совершенно другой способ работы, используя события и такую магию, которую я еще не полностью понял:
var connector = new builder.ConsoleConnector();
app.post("/skype", connector.listen());
var bot = new builder.UniversalBot(connector, function (session) {
session.send("You said: %s", session.message.text);
});
Не похоже, что это совместимые способы выполнения действий, так как лучше всего получить сообщение, а затем отправить ответ пользователю, не меняя мою экспресс-маршрутизацию, чтобы она соответствовала бот-сборщику? Могу ли я получить объект Session с помощью Session.send () для ответа? Придется ли делать всю адресацию вручную? Есть ли способ, который похож на это:
app.post("/skype", (req, res, next) => {
const address = req.body.id;
const message = new builder.Message(address, messageBody).send()
}
Или:
app.post("/skype", connector.listen(), (req, res, next) => {
// (res.locals is available in every express middleware function)
const session = res.locals.botFrameworkSession;
// do stuff
session.send(message);
}