我正在使用 ms bot 框架并创建了一个新的机器人。并在 google firebase 功能上部署了机器人连接器部分。但下面的代码没有反应。下面是代码:
const builder = require('botbuilder');
const teams = require('botbuilder-teams');
import * as util from 'util';
const restify = require('restify');
let connector = new teams.TeamsChatConnector({
appId: 'my app id',
appPassword: 'my app secret'
});
var server = restify.createServer();
server.listen(80, function () {
console.log('%s listening to %s', server.name, util.inspect(server.address()));
});
server.post('/api/messages', connector.listen());
new builder.UniversalBot(connector, function (session:any) {
console.log("inside bot got something dude:::::" + session.message.text);
});
机器人设置中的端点配置为:
https://us-central1-xxxx.cloudfunctions.net/api/messages
预期行为:当我使用机器人测试器向机器人发送消息时,我应该能够在 Firebase 函数日志中看到控制台消息“内部机器人得到了一些东西:::::”。
但是,它从未被调用,所以我不确定这里缺少什么。
如果您想知道为什么我们使用 google firebase 函数而不是 azure,那么答案是我们使用 firebase DB 并且我们的机器人响应需要进入相同的 firedb。此外,我们不必仅仅为了运行简单的 Node 基础代码而支付/订阅一个云。
最佳答案
不确定这是否是问题所在,但我的所有 Firebase 函数都是使用该格式调用的
https://us-central1-name_of_app.cloudfunctions.net/name_of_function
而您使用格式调用它
https://us-central1-name_of_app.cloudfunctions.net/api/name_of_function
(添加了 /api/
),这使得您看起来像是在调用另一个网站而不是实际的函数。
顺便说一下,您可以在 Firebase Functions 主页面中找到托管您的函数的 URL。
希望有帮助!
关于node.js - Microsoft bot 未从 Firebase 云功能做出响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57446390/