用Nodejs(Express)做简单的微博公众号接入

前提

  • 你已经注册好了微信的公众账号(订阅号或服务号)
  • 你可以快速的架设你的服务器(heroku, ec2, 阿里云等等)
  • Nodejs的基础

Express

Express是一个Nodejs的web框架,可以让你用简便的方式来写nodejs应用

npm -g install express #让你在除了当前文件夹以外的地方都可以用express

代码

首先来写一个简单的中间件(middleware)。所谓的中间件其实就是一个有三个参数的方程,三个参数分别是req(请求),res(回应),next(下一个中间件)。中间件的主要目的是给req和res做一些处理,然后再交给下一个中间件。那么下面定义一个文件wechatAuth.js

var crypto = require('crypto')
	, TOKEN = 'TOKEN';

var isValidWechatRequest = function(signature, timestamp, nonce){
	var arr = [TOKEN, timestamp, nonce];
	arr.sort();
	
	return crypto.createHash('sha1').update(arr.join('')).digest('hex') 
		=== signature;

};

module.exports = function(req, res, next){
	var query = req.query;
	if ( isValidWeixinRequest(
		req.query.signature
		, req.query.timestamp
		, req.query.nonce)){
		next();
	}else{
		//没有通过微信服务器的验证,可能是微信服务器出错或者恶意请求
		res.send('You didnt pass the validation'); 
	}

};
  • sdf
  • sdflkj
  • sdfk
  • fdfjhello

``` fuck this shit var a = 1

```

	3.times {|f| puts f}