微信API for Node.js
发布于 2年前 作者 jeremywei 2856 次浏览

写了个微信公众API: Github:https://github.com/JeremyWei/weixin_api NPM:https://npmjs.org/package/weixin-api

我们使用express来开发微信公众平台应用,首先安装express:

    npm install express -g

创建应用

    express myweixin

cd myweixin修改package.json,添加对weixin-api的依赖

{
  "name": "application-name",
  "version": "0.0.1",
  "private": true,
  "scripts": {
    "start": "node app.js"
  },
  "dependencies": {
    "express": "3.1.1",
    "jade": "*",
    "xml2js" : "0.2.6",
    "weixin-api" : ">=0.1.3"
  }
}

然后执行

    npm install

实例

var express = require('express'),
    weixin = require('weixin-api'),
    app = express();

// 解析器
app.use(express.bodyParser());
//app.use(xmlBodyParser);

// 接入验证
app.get('/', function(req, res) {
        
    // 签名成功
    if (weixin.checkSignature(req)) {
        res.send(200, req.query.echostr);
    } else {
        res.send(200, 'fail');
    }
});

// config
weixin.token = '你的token';

// 监听文本消息
weixin.textMsg(function(msg) {
    console.log("textMsg received");
    console.log(JSON.stringify(msg));

    var resMsg = {};

    switch (msg.content) {
        case "文本" :
            resMsg = {
                fromUserName : msg.toUserName,
                toUserName : msg.fromUserName,
                msgType : "text",
                content : "(╯°□°)╯︵ ┻━┻",
                funcFlag : 0
            };
            break;
    
        case "音乐" :
            resMsg = {
                fromUserName : msg.toUserName,
                toUserName : msg.fromUserName,
                msgType : "music",
                title : "向往",
                description : "李健《向往》",
                musicUrl : "",
                HQMusicUrl : "",
                funcFlag : 0
            };
            break;
        
        case "图文" :
        
            var articles = [];
            articles[0] = {
                title : "PHP依赖管理工具Composer入门",
                description : "PHP依赖管理工具Composer入门",
                picUrl : "http://weizhifeng.net/images/tech/composer.png",
                url : "http://weizhifeng.net/manage-php-dependency-with-composer.html"
            };

            articles[1] = {
                title : "八月西湖",
                description : "八月西湖",
                picUrl : "http://weizhifeng.net/images/poem/bayuexihu.jpg",
                url : "http://weizhifeng.net/bayuexihu.html"
            };

            articles[2] = {
                title : "「翻译」Redis协议",
                description : "「翻译」Redis协议",
                picUrl : "http://weizhifeng.net/images/tech/redis.png",
                url : "http://weizhifeng.net/redis-protocol.html"
            };
    
            // 返回图文消息
            resMsg = {
                fromUserName : msg.toUserName,
                toUserName : msg.fromUserName,
                msgType : "news",
                articles : articles,
                funcFlag : 0
            }
    }

    weixin.sendMsg(resMsg);
});

// 监听图片消息
weixin.imageMsg(function(msg) {
    //
    console.log("imageMsg received");
    console.log(JSON.stringify(msg));
});

// 监听位置消息
weixin.locationMsg(function(msg) {
    //
    console.log("locationMsg received");
    console.log(JSON.stringify(msg));
});

// 监听链接消息
weixin.urlMsg(function(msg) {
    //
    console.log("urlMsg received");
    console.log(JSON.stringify(msg));
});

// 监听事件消息
weixin.eventMsg(function(msg) {
    //
    console.log("eventMsg received");
    console.log(JSON.stringify(msg));
});

// Start
app.post('/', function(req, res) {
    
    // loop
    weixin.loop(req, res);

});

app.listen(3000);

原文:http://weizhifeng.net/weixin-with-node.js.html

7 回复

just for fun :)

和 朴灵 的那个api挺像

改成80端口 网站接入验证taken 出错 fail? 什么原因

不知道楼主做了登录认证那块了 吗

运行的时候,打开页面怎么显示的是 fail…

回到顶部