Created
October 15, 2015 12:36
-
-
Save akira-cn/d122eba05de60940bfea to your computer and use it in GitHub Desktop.
wechat hook for think.js 2.0
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
* this file will be loaded before server started | |
* you can register app hook | |
*/ | |
const WEIXIN_APPID = appid; | |
const WEIXIN_APPSECRET = appsecret; | |
const WEIXIN_TOKEN = token; | |
const WEIXIN_AESKEY = aeskey; | |
think.middleware('parse_wechat', http => { | |
var connect = require('http-connect'); | |
var app = new connect(http); | |
var wechat = require('wechat'); | |
http.req.rawBody = http.payload; | |
return new Promise(function(resolve, reject){ | |
function forward(path, message){ | |
http._post = message; | |
http.pathname += '/' + path; | |
resolve(); | |
} | |
app.use(wechat({ token: WEIXIN_TOKEN, appid: WEIXIN_APPID, encodingAESKey: WEIXIN_AESKEY }) | |
.text(function (message, req, res, next) { | |
// message为文本内容 | |
// { ToUserName: 'gh_d3e07d51b513', | |
// FromUserName: 'oPKu7jgOibOA-De4u8J2RuNKpZRw', | |
// CreateTime: '1359125035', | |
// MsgType: 'text', | |
// Content: 'http', | |
// MsgId: '5837397576500011341' } | |
forward('text', message); | |
}).image(function (message, req, res, next) { | |
// message为图片内容 | |
// { ToUserName: 'gh_d3e07d51b513', | |
// FromUserName: 'oPKu7jgOibOA-De4u8J2RuNKpZRw', | |
// CreateTime: '1359124971', | |
// MsgType: 'image', | |
// PicUrl: 'http://mmsns.qpic.cn/mmsns/bfc815ygvIWcaaZlEXJV7NzhmA3Y2fc4eBOxLjpPI60Q1Q6ibYicwg/0', | |
// MediaId: 'media_id', | |
// MsgId: '5837397301622104395' } | |
forward('image', message); | |
}).voice(function (message, req, res, next) { | |
// message为音频内容 | |
// { ToUserName: 'gh_d3e07d51b513', | |
// FromUserName: 'oPKu7jgOibOA-De4u8J2RuNKpZRw', | |
// CreateTime: '1359125022', | |
// MsgType: 'voice', | |
// MediaId: 'OMYnpghh8fRfzHL8obuboDN9rmLig4s0xdpoNT6a5BoFZWufbE6srbCKc_bxduzS', | |
// Format: 'amr', | |
// MsgId: '5837397520665436492' } | |
forward('voice', message); | |
}).video(function (message, req, res, next) { | |
// message为视频内容 | |
// { ToUserName: 'gh_d3e07d51b513', | |
// FromUserName: 'oPKu7jgOibOA-De4u8J2RuNKpZRw', | |
// CreateTime: '1359125022', | |
// MsgType: 'video', | |
// MediaId: 'OMYnpghh8fRfzHL8obuboDN9rmLig4s0xdpoNT6a5BoFZWufbE6srbCKc_bxduzS', | |
// ThumbMediaId: 'media_id', | |
// MsgId: '5837397520665436492' } | |
forward('video', message); | |
}).shortvideo(function (message, req, res, next) { | |
// message为短视频内容 | |
// { ToUserName: 'gh_d3e07d51b513', | |
// FromUserName: 'oPKu7jgOibOA-De4u8J2RuNKpZRw', | |
// CreateTime: '1359125022', | |
// MsgType: 'shortvideo', | |
// MediaId: 'OMYnpghh8fRfzHL8obuboDN9rmLig4s0xdpoNT6a5BoFZWufbE6srbCKc_bxduzS', | |
// ThumbMediaId: 'media_id', | |
// MsgId: '5837397520665436492' } | |
forward('shortvideo', message); | |
}).location(function (message, req, res, next) { | |
// message为位置内容 | |
// { ToUserName: 'gh_d3e07d51b513', | |
// FromUserName: 'oPKu7jgOibOA-De4u8J2RuNKpZRw', | |
// CreateTime: '1359125311', | |
// MsgType: 'location', | |
// Location_X: '30.283950', | |
// Location_Y: '120.063139', | |
// Scale: '15', | |
// Label: {}, | |
// MsgId: '5837398761910985062' } | |
forward('location', message); | |
}).link(function (message, req, res, next) { | |
// message为链接内容 | |
// { ToUserName: 'gh_d3e07d51b513', | |
// FromUserName: 'oPKu7jgOibOA-De4u8J2RuNKpZRw', | |
// CreateTime: '1359125022', | |
// MsgType: 'link', | |
// Title: '公众平台官网链接', | |
// Description: '公众平台官网链接', | |
// Url: 'http://1024.com/', | |
// MsgId: '5837397520665436492' } | |
forward('link', message); | |
}).event(function (message, req, res, next) { | |
// message为事件内容 | |
// { ToUserName: 'gh_d3e07d51b513', | |
// FromUserName: 'oPKu7jgOibOA-De4u8J2RuNKpZRw', | |
// CreateTime: '1359125022', | |
// MsgType: 'event', | |
// Event: 'LOCATION', | |
// Latitude: '23.137466', | |
// Longitude: '113.352425', | |
// Precision: '119.385040', | |
// MsgId: '5837397520665436492' } | |
forward('event', message); | |
}).device_text(function (message, req, res, next) { | |
// message为设备文本消息内容 | |
// { ToUserName: 'gh_d3e07d51b513', | |
// FromUserName: 'oPKu7jgOibOA-De4u8J2RuNKpZRw', | |
// CreateTime: '1359125022', | |
// MsgType: 'device_text', | |
// DeviceType: 'gh_d3e07d51b513' | |
// DeviceID: 'dev1234abcd', | |
// Content: 'd2hvc3lvdXJkYWRkeQ==', | |
// SessionID: '9394', | |
// MsgId: '5837397520665436492', | |
// OpenID: 'oPKu7jgOibOA-De4u8J2RuNKpZRw' } | |
forward('deviceText', message); | |
}).device_event(function (message, req, res, next) { | |
// message为设备事件内容 | |
// { ToUserName: 'gh_d3e07d51b513', | |
// FromUserName: 'oPKu7jgOibOA-De4u8J2RuNKpZRw', | |
// CreateTime: '1359125022', | |
// MsgType: 'device_event', | |
// Event: 'bind' | |
// DeviceType: 'gh_d3e07d51b513' | |
// DeviceID: 'dev1234abcd', | |
// OpType : 0, //Event为subscribe_status/unsubscribe_status时存在 | |
// Content: 'd2hvc3lvdXJkYWRkeQ==', //Event不为subscribe_status/unsubscribe_status时存在 | |
// SessionID: '9394', | |
// MsgId: '5837397520665436492', | |
// OpenID: 'oPKu7jgOibOA-De4u8J2RuNKpZRw' } | |
forward('deviceEvent', message); | |
}) | |
.middlewarify()); | |
}); | |
}); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment