wei-backend 0.1.1 → 0.1.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +39 -54
- data/lib/wei-backend/version.rb +2 -2
- data/spec/wei_backend_spec.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 01e84b0eb6af8a107e307af7bd14f9762b5d7045
|
4
|
+
data.tar.gz: ae93c2b334967bef579aaa8522a81a4d48458ea6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 722815bc026f135f33e111e712f333eb27812735027600bfabc280dfe862cccaf0c277046de48db74287659367d886b48542ba47d0b67c3b1633e80d046d5cb8
|
7
|
+
data.tar.gz: 249f72d775f33b46febfb9938dc51b9f718fddb32d91978f258567e5766059fe5a7dbb79c0bc05209d1c663eea480be4488a63a20828276a4aa79fd27a68ea44
|
data/README.md
CHANGED
@@ -1,13 +1,3 @@
|
|
1
|
-
<script>
|
2
|
-
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
|
3
|
-
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
|
4
|
-
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
|
5
|
-
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
|
6
|
-
|
7
|
-
ga('create', 'UA-46801609-2', 'github.com');
|
8
|
-
ga('send', 'pageview');
|
9
|
-
|
10
|
-
</script>
|
11
1
|
## 微信公众平台后台框架
|
12
2
|
[![Build Status](https://travis-ci.org/charleyw/weChat-backend.png?branch=master)](https://travis-ci.org/charleyw/weChat-backend)
|
13
3
|
|
@@ -41,6 +31,41 @@
|
|
41
31
|
|
42
32
|
ruby app.rb
|
43
33
|
|
34
|
+
## 模拟微信请求测试
|
35
|
+
微信的每一个请求都会带上3个参数,`timestamp`时间戳, `nonce`随机数以及`signature`由token和前两个参数生成的值。因此,模拟测试需要生成token对应的signature:
|
36
|
+
|
37
|
+
|
38
|
+
```
|
39
|
+
export TIMESTAMP=1388674716
|
40
|
+
export NONCE=1388564676
|
41
|
+
export TOKEN=mytoken
|
42
|
+
export SIGNATURE=$(ruby -e 'require "digest/sha1"; puts Digest::SHA1.hexdigest [ENV["TIMESTAMP"], ENV["NONCE"], ENV["TOKEN"]].sort!.join')
|
43
|
+
curl -H 'Content-type:text/xml' -d@- localhost:4567/weixin?signature=$SIGNATURE×tamp=$TIMESTAMP&nonce=$NONCE << EOF
|
44
|
+
<xml>
|
45
|
+
<ToUserName><![CDATA[toUser]]></ToUserName>
|
46
|
+
<FromUserName><![CDATA[fromUser]]></FromUserName>
|
47
|
+
<CreateTime>1348831860</CreateTime>
|
48
|
+
<MsgType><![CDATA[text]]></MsgType>
|
49
|
+
<Content><![CDATA[This is a text message]]></Content>
|
50
|
+
<MsgId>1234567890123456</MsgId>
|
51
|
+
</xml>
|
52
|
+
EOF
|
53
|
+
|
54
|
+
```
|
55
|
+
|
56
|
+
将会得到一段xml返回值,表示一切OK:
|
57
|
+
|
58
|
+
```
|
59
|
+
<xml>
|
60
|
+
<ToUserName><![CDATA[fromUser]]></ToUserName>
|
61
|
+
<FromUserName><![CDATA[toUser]]></FromUserName>
|
62
|
+
<CreateTime><![CDATA[1386522760]]></CreateTime>
|
63
|
+
<MsgType><![CDATA[text]]></MsgType>
|
64
|
+
<Content><![CDATA[你发送了如下内容: This is a text message]]></Content>
|
65
|
+
</xml>
|
66
|
+
|
67
|
+
```
|
68
|
+
|
44
69
|
## 与微信接口兼容情况:
|
45
70
|
|
46
71
|
* 现在可以处理的消息类型(被动接受用户消息类型):
|
@@ -61,50 +86,12 @@
|
|
61
86
|
| 文本消息 | ruby 字符串 |
|
62
87
|
| 图文事件 | ruby hash值 |
|
63
88
|
|
64
|
-
## 如何使用
|
65
|
-
* 创建一个文件,如app.rb,写入如下内容:
|
66
|
-
|
67
|
-
require ‘sinatra’
|
68
|
-
require 'wei-backend'
|
69
|
-
|
70
|
-
on_text do
|
71
|
-
"Received a text message: #{params[:Content]}!!, and send back a text message!"
|
72
|
-
end
|
73
|
-
|
74
|
-
* 启动
|
75
|
-
|
76
|
-
ruby app.rb
|
77
|
-
* 测试
|
78
|
-
|
79
|
-
```
|
80
|
-
curl -H 'Content-type:text/xml' -d@- localhost:4567 << EOF
|
81
|
-
<xml>
|
82
|
-
<ToUserName><![CDATA[toUser]]></ToUserName>
|
83
|
-
<FromUserName><![CDATA[fromUser]]></FromUserName>
|
84
|
-
<CreateTime>1348831860</CreateTime>
|
85
|
-
<MsgType><![CDATA[text]]></MsgType>
|
86
|
-
<Content><![CDATA[This is a text message]]></Content>
|
87
|
-
<MsgId>1234567890123456</MsgId>
|
88
|
-
</xml>
|
89
|
-
EOF
|
90
|
-
|
91
|
-
```
|
92
|
-
|
93
|
-
将会得到一段text返回值,一切OK:
|
94
|
-
|
95
|
-
```
|
96
|
-
<xml>
|
97
|
-
<ToUserName><![CDATA[fromUser]]></ToUserName>
|
98
|
-
<FromUserName><![CDATA[toUser]]></FromUserName>
|
99
|
-
<CreateTime><![CDATA[1386522760]]></CreateTime>
|
100
|
-
<MsgType><![CDATA[text]]></MsgType>
|
101
|
-
<Content><![CDATA[Received a text message: This is a text message!!, and send back a text message!]]></Content>
|
102
|
-
</xml>
|
103
|
-
|
104
|
-
```
|
105
89
|
|
106
90
|
## 接口说明:
|
107
91
|
各个接口只能定义一次,重复定义会覆盖之前定义的接口
|
92
|
+
|
93
|
+
* ### token
|
94
|
+
用来配置你在微信公众平台设置的token,token的作用是用来的验证微信的请求是否合法。请确保你的token和微信公众平台设置的token一致。
|
108
95
|
|
109
96
|
* ### on_text
|
110
97
|
当用户向微信公众发送消息的时候,微信会POST一段XML到公众号的后台服务器,`on_text`方法中定义的代码会处理这个请求,这`on_text`方法中可以访问到的请求参数:
|
@@ -172,7 +159,5 @@ EOF
|
|
172
159
|
|
173
160
|
## Liscense
|
174
161
|
|
175
|
-
©
|
176
|
-
|
177
|
-
[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/charleyw/wechat-backend/trend.png)](https://bitdeli.com/free "Bitdeli Badge")
|
162
|
+
© 2014 Wang Chao. This code is distributed under the MIT license.
|
178
163
|
|
data/lib/wei-backend/version.rb
CHANGED
@@ -1,3 +1,3 @@
|
|
1
1
|
module WeiBackend
|
2
|
-
VERSION = '0.1.
|
3
|
-
end
|
2
|
+
VERSION = '0.1.2'
|
3
|
+
end
|
data/spec/wei_backend_spec.rb
CHANGED
@@ -76,7 +76,7 @@ describe 'app' do
|
|
76
76
|
|
77
77
|
WeiBackend::MessageDispatcher.token 'combustest'
|
78
78
|
|
79
|
-
post '/weixin?signature=0d144fa22f4119dbb2f6fe9710f3b732fb45092b×tamp=1388674716&nonce=1388564676', SUBSCRIBE_EVENT_REQUEST, 'CONTENT_TYPE' => 'text/xml'
|
79
|
+
post '/weixin?signature=0d144fa22f4119dbb2f6fe9710f3b732fb45092b×tamp=1388674716&nonce=1388564676', SUBSCRIBE_EVENT_REQUEST, 'CONTENT_TYPE' => 'text/xml'
|
80
80
|
last_response.body.should include '<ToUserName><![CDATA[fromUser]]></ToUserName>'
|
81
81
|
last_response.body.should include '<Content><![CDATA[Thank you for subscribe!]]></Content>'
|
82
82
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: wei-backend
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Wang Chao
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-03-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: sinatra
|