微信公众平台后台框架
========
## 如何安装:
* ### 使用bundler
将`wei-backend`添加到`Gemfile`里:
gem 'wei-backend'
* ### 使用`gem`直接安装:
gem install wei-backend
## 如何使用
* 创建一个文件,如app.js,写入如下内容:
require ‘sinatra’
require 'wei-backend'
on_text do
"Received a text message: #{params[:Content]}!!, and send back a text message!"
end
* 启动
ruby app.rb
* 测试
```
curl -H 'Content-type:text/xml' -d@- localhost:4567 << EOF
1348831860
1234567890123456
EOF
```
将会得到一段text返回值,一切OK:
```
```
## 接口说明:
1. ### on_text
当用户向微信公众发送消息的时候,微信会POST一段XML到公众号的后台服务器,`on_text`方法中定义的代码会处理这个请求,这`on_text`方法中可以访问到的请求参数:
* `params[:ToUserName]`: 发送请求的用户
* `params[:FromUserName]`: 公众号用户
* `params[:CreateTime]`: 创建时间
* `params[:MsgType]`: 消息类型,在这里是text
* `params[:Content]`: 消息内容
1. ### on_event
处理微信发送过来的event请求:
* `params[:ToUserName]`: 发送请求的用户
* `params[:FromUserName]`: 公众号用户
* `params[:CreateTime]`: 创建时间
* `params[:MsgType]`: 消息类型,在这里是event
* `params[:Event]`: 消息内容,如_**subscribe**_, _**unsubscribe**_
1. ### on_location
当用户想微信公众号分享位置信息时,微信会POST相应的位置信息到公众号后台服务器
* `params[:ToUserName]`: 发送请求的用户
* `params[:FromUserName]`: 公众号用户
* `params[:CreateTime]`: 创建时间
* `params[:MsgType]`: 消息类型,在这里是location
* `params[:Latitude]`: 地理位置纬度
* `params[:Longitude]`: 地理位置经度 * `params[:Precision]`: 地理位置精度