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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 2e71022dc9103d79911126ec2b08c09624105c1c
4
- data.tar.gz: 2170b1c6de741b5e2eba156902b118a05067d014
3
+ metadata.gz: 01e84b0eb6af8a107e307af7bd14f9762b5d7045
4
+ data.tar.gz: ae93c2b334967bef579aaa8522a81a4d48458ea6
5
5
  SHA512:
6
- metadata.gz: 00c4f48060e0cc7238ac6d27c6d6bc736b857c515c9f53b0793cdf1d24b9a8b06e99b042cea348fdbc9cf38ffe19d23d8cda82c8601d158909160034089c0ec5
7
- data.tar.gz: 5c72ee53f6bc9b12f1b49583e07e6d8f564528f06735f06a08404ebcc1fd1e24c1edb96e731165f0a65d056171a47a68734c962381f9f824eea70c83749a9ff5
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&timestamp=$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
- © 2013 Wang Chao. This code is distributed under the MIT license.
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
 
@@ -1,3 +1,3 @@
1
1
  module WeiBackend
2
- VERSION = '0.1.1'
3
- end
2
+ VERSION = '0.1.2'
3
+ end
@@ -76,7 +76,7 @@ describe 'app' do
76
76
 
77
77
  WeiBackend::MessageDispatcher.token 'combustest'
78
78
 
79
- post '/weixin?signature=0d144fa22f4119dbb2f6fe9710f3b732fb45092b&timestamp=1388674716&nonce=1388564676', SUBSCRIBE_EVENT_REQUEST, 'CONTENT_TYPE' => 'text/xml', 'token' => 'token'
79
+ post '/weixin?signature=0d144fa22f4119dbb2f6fe9710f3b732fb45092b&timestamp=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.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-02-23 00:00:00.000000000 Z
11
+ date: 2014-03-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: sinatra