wei-backend 0.1.1 → 0.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|
[](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
|
-
[](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
|