var express = require('express'); var webot = require('weixin-robot'); var log = require('debug')('webot-example:log'); var verbose = require('debug')('webot-example:verbose'); // 启动服务 var app = express(); // 实际使用时,这里填写你在微信公共平台后台填写的 token var wx_token = process.env.WX_TOKEN || 'keyboardcat123'; var wx_token2 = process.env.WX_TOKEN_2 || 'weixinToken2'; // remove this test code in production environment try { // for submodulized repository only webot = require('../'); } catch (e) {} // app.use(express.query()); app.use(express.cookieParser()); // 为了使用 waitRule 功能,需要增加 session 支持 // 你应该将此处的 store 换为某种永久存储。请参考 http://expressjs.com/2x/guide.html#session-support app.use(express.session({ secret: 'abced111', store: new express.session.MemoryStore() })); // 启动机器人, 接管 web 服务请求,默认会监听根目录请求 webot.watch(app, { token: wx_token, path: '/wechat' }); // 若省略 path 参数,会监听到根目录 // webot.watch(app, { token: wx_token, }); // 可以建立多个实例,并监听到不同 path , // 后面指定的 path 不可为前面实例的子目录 var webot2 = new webot.Webot(); webot2.set('hello', 'hi.'); webot2.watch(app, { token: wx_token2, path: '/wechat_2' }); // 载入路由规则 require('./rules')(webot); // 在环境变量提供的 $PORT 或 3000 端口监听 var port = process.env.PORT || 3000; app.listen(port, function(){ log("Listening on %s", port); }); // 微信后台只允许 80 端口,你可能需要自己做一层 proxy app.enable('trust proxy'); // 当然,如果你的服务器允许,你也可以直接用 node 来 serve 80 端口 // app.listen(80); if(!process.env.DEBUG){ console.log("set env variable `DEBUG=webot-example:*` to display debug info."); }