rockq-org / wildfire

Project to publish personal stuffs, a platform alike eBay based wechat.
http://shorterurl.net/pul2zu7
3 stars 1 forks source link

自动回复和自定义菜单是否可直接使用微信平台提供的功能? #301

Open tangkaik opened 9 years ago

tangkaik commented 9 years ago

现在我们平台上的自动回复规则是后台程序完成的。根据运营推广的需要,我们打算修改自动回复规则。希望借助特定关键词的方式回复特定的用户消息。如果后台用程序做工作量比较大,是否可以直接用微信提供的工具来做?还有自定义菜单也是同样,是否可以用微信自定义菜单来做而不会影响现有功能?

hailiang-wang commented 9 years ago

开发者模式需要使用自己的程序完成。微信控制台这部分功能被禁用了。

tangkaik commented 9 years ago

那这两段代码都在什么地方呢?我们自己去修改应该可以的吧。

hailiang-wang commented 9 years ago

你们可以自己修改,属于你们自己开发-测试-更新(查看 https://github.com/arrking/wildfire-production-doc/issues/9 ),我们不会负责由此产生对bug。 你们可以直接push到这个github repo 中。

hailiang-wang commented 9 years ago

微信服务对接

wildfire-server.js

 wechat.setup(app, '/connect-wechat');

middlewares/connect-wechat.js

微信提供面向开发者提供了丰富的API http://mp.weixin.qq.com/wiki/home/index.html NodeJS社区贡献了开源的SDK。wildfire使用 https://www.npmjs.com/package/wechat 开发实现。

关于回复的实现,需要更改 connect-wechat.js 对微信不同事件的实现。

比如现在的实现

app.use(path, wechat('wiUtuddAk3', function(req, res, next) {
        // message is located in req.weixin
        var message = req.weixin;
        // _postWXEvent(message);
        // TODO
        // post the data into database
        // superagent.post()

        switch (message.Event) {
            case 'CLICK':
                onClick(message, res);
                break;
            case 'subscribe':
                onSubscribe(message, res);
                break;
            case 'unsubscribe':
                onUnsubscribe(message, res);
                break;
            default:
                // other events, check out
                // http://mp.weixin.qq.com/wiki/2/5baf56ce4947d35003b86a9805634b1e.html
                onDefault(message, res);
                break;
        }
    }));

处理用户回复可以进一步参考 https://www.npmjs.com/package/wechat