Botkit(https://github.com/howdyai/botkit/blob/master/readme-facebook.md)的文档完全没有意义:
// if you are already using Express, you can use your own server instance...
// see "Use BotKit with an Express web server"
controller.setupWebserver(process.env.port,function(err,webserver) {
controller.createWebhookEndpoints(controller.webserver, bot, function() {
console.log('This bot is online!!!');
});
});
此外,没有自定义网络服务器(如快递),Botkit不提供设置自定义本地网址的方法(相反,它只选择0.0.0.0,这是不切实际的) .
是否有人成功地将 app = require('express')();
组装到Botkit中的 setupWebserver
(特别是用于Messenger) . 如果是,请提供完整的代码 .
3 回答
创建控制器时,可以设置内置快速服务器的主机名:
controller.setupWebserver
和controller.createWebhookEndpoints
是botkit中的辅助函数,可以完成他们描述的内容,分别创建快速Web服务器和webhook endpoints .要实现自己的Web服务器,您只需要为botkit控制器设置webhook endpoints ,以便接收消息POST数据并执行auth握手 .
通过botkit约定,这是
/{platform}/receive
所以对于facebook/facebook/receive
但你可以使用你喜欢的任何东西 .To use a custom express server with Botkit, first create a basic webserver.
Next you need to create the routes for webhook endpoints, we're doing this in a separate file as is common with express
Once you have created these two files, you will use require and pass your controller into the express module. Your main bot file should look something like this
你可以在github找到一个,MIT许可的,完整的Demo of running BotKit for Facebook Messenger on an Express server with MongoDB storage .
这是主server.js
好吧所以这里我正在尝试相同的事情,并已能够启动botkit与快递上的自定义URL . 您根本不必担心此代码:
此存储库有自己的代码,可以使用mongodb数据库和快速服务器 .
不要忘记将变量添加到目录中的.env文件中 .
您在本地主机上的所有流量都将重定向到localtunnel,您可以使用lt --subdomain名称获取网址--port 5000
在页面上的webhook中使用此生成的URL,您的机器人应该在线 .