【发布时间】:2020-01-03 00:03:47
【问题描述】:
我使用带有 nodejs 的 microsoft bot 框架开发了一个简单的 bot。代码只是两个文件,如下所示。
我在 google firebase 函数文档上看到 https://firebase.google.com/docs/functions/http-events#using_existing_express_apps
看来我可以简单地将我的 ms bot nodejs 部署到 firebase。问题是我应该怎么做。
app.js
'use strict';
var express = require('express');
var app = express();
// Adding a bot to our app
var bot = require('./bot');
bot.setup(app);
// Adding a messaging extension to our app
var messagingExtension = require('./messaging-extension');
messagingExtension.setup();
// Deciding which port to use
var port = process.env.PORT || 3333;
// Start our nodejs app
app.listen(port, function() {
console.log(`App started listening on port ${port}`);
});
bot.js
'use strict';
module.exports.setup = function(app) {
var builder = require('botbuilder');
var teams = require('botbuilder-teams');
var config = require('config');
if (!config.has("bot.appId")) {
process.env.NODE_CONFIG_DIR = "../config";
delete require.cache[require.resolve('config')];
config = require('config');
}
// Create a connector to handle the conversations
var connector = new teams.TeamsChatConnector({
appId: config.get("bot.appId"),
appPassword: config.get("bot.appPassword")
});
var inMemoryBotStorage = new builder.MemoryBotStorage();
var bot = new builder.UniversalBot(connector, async function(session) {
session.send("Hello world");
}).set('storage', inMemoryBotStorage);
// Setup an endpoint on the router for the bot to listen.
// NOTE: This endpoint cannot be changed and must be api/messages
app.post('/api/messages', connector.listen());
// Export the connector for any downstream integration - e.g. registering a messaging extension
module.exports.connector = connector;
};
【问题讨论】:
-
如果你只有两个文件,那么'./messaging-extension'是什么?
-
Bot Builder v3 不再受支持。您会接受一个向您展示如何使用 Bot Builder v4 执行此操作的答案吗?
-
可以,只要我可以运行它并部署在 firebase 功能上
-
是的,即使这样,firebase 托管也很好。任何 firebase 解决方案都可以使用,因为与 firebase db 保持联系非常容易。无论是 firebase 功能还是 firebase 托管。
标签: node.js firebase google-cloud-functions botframework