
Security News
Deno 2.2 Improves Dependency Management and Expands Node.js Compatibility
Deno 2.2 enhances Node.js compatibility, improves dependency management, adds OpenTelemetry support, and expands linting and task automation for developers.
nodejs-wechat
Advanced tools
Nodejs wrapper of wechat api
var http = require('http');
var xmlBodyParser = require('express-xml-parser');
var Wechat = require('nodejs-wechat');
var opt = {
token: 'TOKEN',
url: '/'
};
var parse = xmlBodyParser();
var wechat = new Wechat(opt);
wechat.on('event.subscribe', function(session) {
session.replyTextMsg('欢迎您关注我们的订阅号');
});
var server = http.createServer(function(req, res) {
if (req.method === 'GET') {
wechat.verifyRequest(req, res);
} else {
parse(req, res, function(err) {
if (err) {
res.end();
return;
}
wechat.handleRequest(req, res);
});
}
});
server.listen(80);
var express = require('express');
var app = express();
var middlewares = require('express-middlewares-js');
app.use('/weixin', middlewares.xmlBodyParser());
/*
Alternative way
var xmlBodyParser = require('express-xml-parser');
app.use('/weixin', xmlBodyParser({
type: ['application/xmlplus', 'xml'],
limit: '1mb'
}));
*/
var Wechat = require('nodejs-wechat');
var opt = {
token: token,
url: '/weixin'
};
var wechat = new Wechat(opt);
app.get('/weixin', wechat.verifyRequest.bind(wechat));
app.post('/weixin', wechat.handleRequest.bind(wechat));
// you can also work with other restful routes
app.use('/api', middlewares.bodyParser());
wechat.on('text', function(session) {
session.replyTextMsg('Hello World');
});
wechat.on('image', function(session) {
session.replyNewsMsg([{
Title: '新鲜事',
Description: '点击查看今天的新鲜事',
PicUrl: 'http://..',
Url: 'http://..'
}]);
});
wechat.on('voice', function(session) {
session.replyMsg({
Title: 'This is Music',
MsgType: 'music',
Description: 'Listen to this music and guess ths singer',
MusicUrl: 'http://..',
HQMusicUrl: 'http://..',
ThumbMediaId: '..'
});
});
app.listen(80);
#verifyRequest(req, res)
This is a express/connect middleware, which verify the signature of request from weixin server
#handleRequest(req, res)
This is a express/connect middleware, which handle the request post from weixin server
#on(msgType, handler)
Wechat is an inheritance from event.EventEmitter. Wechat will emit an event in incoming message's
MsgType
, with aSession
as parameter. Valid events:
text
,image
,voice
,video
,location
,link
,event.subscribe
,event.unsubscribe
,event.SCAN
,event.LOCATION
,event.CLICK
,event.VIEW
.
incomingMessage
This is a direct parse of weixin server request
<xml>
<ToUserName><![CDATA[toUser]]></ToUserName>
<FromUserName><![CDATA[FromUser]]></FromUserName>
<CreateTime>123456789</CreateTime>
<MsgType><![CDATA[event]]></MsgType>
<Event><![CDATA[subscribe]]></Event>
</xml>
Becomes
{
"ToUserName": "toUser",
"FromUserName": "FromUser",
"CreateTime": "123456789",
"MsgType": "event",
"Event": "subscribe"
}
req
This is the request from weixin server
res
This is the response to weixin server
#replyMsg(msgObject)
Reply a message via
this.res
#replyTextMessage(content)
Reply a text message
#replyNewsMessage(articles)
Reply a news messages.
Will finish advanced interfaces before July/2014, welcome send pull requests :)
FAQs
nodejs wrapper of wechat(weixin) api - well tested and bug-free
The npm package nodejs-wechat receives a total of 1 weekly downloads. As such, nodejs-wechat popularity was classified as not popular.
We found that nodejs-wechat demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Deno 2.2 enhances Node.js compatibility, improves dependency management, adds OpenTelemetry support, and expands linting and task automation for developers.
Security News
React's CRA deprecation announcement sparked community criticism over framework recommendations, leading to quick updates acknowledging build tools like Vite as valid alternatives.
Security News
Ransomware payment rates hit an all-time low in 2024 as law enforcement crackdowns, stronger defenses, and shifting policies make attacks riskier and less profitable.