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 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