weixin_rails_middleware 1.0.2 → 1.0.3
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/app/controllers/weixin_rails_middleware/weixin_controller.rb +22 -1
- data/lib/generators/templates/weixin_controller.rb +29 -17
- data/lib/weixin_rails_middleware/configuration.rb +1 -1
- data/lib/weixin_rails_middleware/version.rb +1 -1
- data/lib/weixin_rails_middleware/weixin_message_helper.rb +23 -23
- data/lib/weixin_rails_middleware/weixin_server_url.rb +14 -0
- data/lib/weixin_rails_middleware.rb +1 -0
- metadata +7 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 381fcd2eb890939d2b4cd3c6738aa2ef2ce38982
|
4
|
+
data.tar.gz: 1eaf214d92befdd0e3646eba489264526fabdf90
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 80698d8806763968e4c432b143c3229a67fd6740ff7b8b53596fe763d06cd668e5e34847151d5df6c04d485d460ed24eec3ddd8cf89ce7e326e81fb33a41cb50
|
7
|
+
data.tar.gz: 3b08680f1058874ec2f6e39798ad1cc05b5075abc998d6423398ef06afe098e40057068cafdfa9c657284793f589a16096779ed29ce2426bb4aad4645bf25d20
|
@@ -1,10 +1,10 @@
|
|
1
1
|
module WeixinRailsMiddleware
|
2
2
|
class WeixinController < ApplicationController
|
3
|
-
|
4
3
|
include WeixinMessageHelper
|
5
4
|
|
6
5
|
skip_before_filter :verify_authenticity_token
|
7
6
|
before_action :check_weixin_params, only: [:index, :reply]
|
7
|
+
before_action :set_weixin_public_account, :set_weixin_message, only: :reply
|
8
8
|
|
9
9
|
def index
|
10
10
|
render text: params[:echostr]
|
@@ -59,5 +59,26 @@ module WeixinRailsMiddleware
|
|
59
59
|
token_model_instance
|
60
60
|
end
|
61
61
|
|
62
|
+
# e.g. will generate +@weixin_public_account+
|
63
|
+
def set_weixin_public_account
|
64
|
+
return nil if WeixinRailsMiddleware.config.token_string.present?
|
65
|
+
@weixin_public_account ||= token_model_instance
|
66
|
+
end
|
67
|
+
|
68
|
+
def set_weixin_message
|
69
|
+
# Get the current_message
|
70
|
+
@weixin_message ||= current_weixin_message
|
71
|
+
end
|
72
|
+
|
73
|
+
# take the weixin params
|
74
|
+
def current_weixin_params
|
75
|
+
request.body.read
|
76
|
+
end
|
77
|
+
|
78
|
+
# return a message class with current_weixin_params
|
79
|
+
def current_weixin_message
|
80
|
+
Message.factory(current_weixin_params)
|
81
|
+
end
|
82
|
+
|
62
83
|
end
|
63
84
|
end
|
@@ -1,27 +1,39 @@
|
|
1
1
|
WeixinRailsMiddleware::WeixinController.class_eval do
|
2
2
|
|
3
|
+
# There are two instance: @weixin_message,
|
4
|
+
# @weixin_public_account(token_model instance if you setup, otherwise return nil)
|
3
5
|
def reply
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
6
|
+
render xml: send("response_#{@weixin_message.MsgType}_message", {})
|
7
|
+
end
|
8
|
+
|
9
|
+
private
|
10
|
+
|
11
|
+
def response_text_message(options={})
|
12
|
+
reply_text_message("Your Message: #{@weixin_message.Content}")
|
13
|
+
|
14
|
+
end
|
15
|
+
|
16
|
+
def response_location_message(options={})
|
17
|
+
reply_text_message("Your Location: #{@weixin_message.Location_X}, #{@weixin_message.Location_Y}")
|
18
|
+
end
|
19
|
+
|
20
|
+
def response_image_message(options={})
|
12
21
|
# image message handler
|
13
|
-
|
14
|
-
|
15
|
-
|
22
|
+
end
|
23
|
+
|
24
|
+
def response_link_message(options={})
|
16
25
|
# link message handler
|
17
|
-
|
26
|
+
end
|
27
|
+
|
28
|
+
def response_event_message(options={})
|
18
29
|
# event messge handler
|
19
|
-
|
30
|
+
end
|
31
|
+
|
32
|
+
def response_voice_message(options={})
|
20
33
|
# voice message handler
|
21
|
-
|
34
|
+
end
|
35
|
+
|
36
|
+
def response_video_message(options={})
|
22
37
|
# video message handler
|
23
|
-
else
|
24
|
-
render xml: reply_text_message(current_message.ToUserName, current_message.FromUserName, 'Unknow message')
|
25
38
|
end
|
26
|
-
end
|
27
39
|
end
|
@@ -1,10 +1,13 @@
|
|
1
1
|
module WeixinRailsMiddleware
|
2
2
|
module WeixinMessageHelper
|
3
3
|
|
4
|
-
|
4
|
+
# e.g.
|
5
|
+
# reply_text_message(@weixin_message.ToUserName, @weixin_message.FromUserName, "Your Message: #{@weixin_message.Content}")
|
6
|
+
# Or reply_text_message("Your Message: #{@weixin_message.Content}")
|
7
|
+
def reply_text_message(from=nil, to=nil, content)
|
5
8
|
message = TextReplyMessage.new
|
6
|
-
message.
|
7
|
-
message.
|
9
|
+
message.FromUserName = from || @weixin_message.ToUserName
|
10
|
+
message.ToUserName = to || @weixin_message.FromUserName
|
8
11
|
message.Content = content
|
9
12
|
message.to_xml
|
10
13
|
end
|
@@ -19,10 +22,10 @@ module WeixinRailsMiddleware
|
|
19
22
|
end
|
20
23
|
|
21
24
|
# music = generate_music
|
22
|
-
def reply_music_message(from, to, music)
|
25
|
+
def reply_music_message(from=nil, to=nil, music)
|
23
26
|
message = MusicReplyMessage.new
|
24
|
-
message.
|
25
|
-
message.
|
27
|
+
message.FromUserName = from || @weixin_message.ToUserName
|
28
|
+
message.ToUserName = to || @weixin_message.FromUserName
|
26
29
|
message.Music = music
|
27
30
|
message.to_xml
|
28
31
|
end
|
@@ -37,10 +40,10 @@ module WeixinRailsMiddleware
|
|
37
40
|
end
|
38
41
|
|
39
42
|
# articles = [generate_article]
|
40
|
-
def reply_news_message(from, to, articles)
|
43
|
+
def reply_news_message(from=nil, to=nil, articles)
|
41
44
|
message = NewsReplyMessage.new
|
42
|
-
message.
|
43
|
-
message.
|
45
|
+
message.FromUserName = from || @weixin_message.ToUserName
|
46
|
+
message.ToUserName = to || @weixin_message.FromUserName
|
44
47
|
message.Articles = articles
|
45
48
|
message.ArticleCount = articles.count
|
46
49
|
message.to_xml
|
@@ -54,8 +57,10 @@ module WeixinRailsMiddleware
|
|
54
57
|
vodeo
|
55
58
|
end
|
56
59
|
|
57
|
-
def replay_video_message(video)
|
60
|
+
def replay_video_message(from=nil, to=nil, video)
|
58
61
|
message = VideoReplyMessage.new
|
62
|
+
message.FromUserName = from || @weixin_message.ToUserName
|
63
|
+
message.ToUserName = to || @weixin_message.FromUserName
|
59
64
|
message.Video = video
|
60
65
|
message.to_xml
|
61
66
|
end
|
@@ -66,8 +71,10 @@ module WeixinRailsMiddleware
|
|
66
71
|
voice
|
67
72
|
end
|
68
73
|
|
69
|
-
def reply_voice_message(voice)
|
74
|
+
def reply_voice_message(from=nil, to=nil, voice)
|
70
75
|
message = VoiceReplyMessage.new
|
76
|
+
message.FromUserName = from || @weixin_message.ToUserName
|
77
|
+
message.ToUserName = to || @weixin_message.FromUserName
|
71
78
|
message.Voice = voice
|
72
79
|
message.to_xml
|
73
80
|
end
|
@@ -78,20 +85,13 @@ module WeixinRailsMiddleware
|
|
78
85
|
image
|
79
86
|
end
|
80
87
|
|
81
|
-
def reply_imgage_message(image)
|
88
|
+
def reply_imgage_message(from=nil, to=nil, image)
|
82
89
|
message = ImageReplyMessage.new
|
90
|
+
message.FromUserName = from || @weixin_message.ToUserName
|
91
|
+
message.ToUserName = to || @weixin_message.FromUserName
|
83
92
|
message.Image = image
|
84
|
-
|
85
|
-
|
86
|
-
# take the weixin params
|
87
|
-
def current_weixin_params
|
88
|
-
request.body.read
|
89
|
-
end
|
90
|
-
|
91
|
-
# return a message class with current_weixin_params
|
92
|
-
def current_weixin_message
|
93
|
-
Message.factory(current_weixin_params)
|
93
|
+
message.to_xml
|
94
94
|
end
|
95
95
|
|
96
96
|
end
|
97
|
-
end
|
97
|
+
end
|
@@ -5,6 +5,7 @@ require "weixin_rails_middleware/reply_message"
|
|
5
5
|
require "weixin_rails_middleware/weixin_message_helper"
|
6
6
|
require "weixin_rails_middleware/weixin_token_form_helper"
|
7
7
|
require "weixin_rails_middleware/unique_token_helper"
|
8
|
+
require "weixin_rails_middleware/weixin_server_url"
|
8
9
|
|
9
10
|
module WeixinRailsMiddleware
|
10
11
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: weixin_rails_middleware
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- lanrion
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-02-
|
11
|
+
date: 2014-02-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: railties
|
@@ -101,6 +101,8 @@ executables: []
|
|
101
101
|
extensions: []
|
102
102
|
extra_rdoc_files: []
|
103
103
|
files:
|
104
|
+
- MIT-LICENSE
|
105
|
+
- Rakefile
|
104
106
|
- app/controllers/weixin_rails_middleware/application_controller.rb
|
105
107
|
- app/controllers/weixin_rails_middleware/weixin_controller.rb
|
106
108
|
- config/routes.rb
|
@@ -108,6 +110,7 @@ files:
|
|
108
110
|
- lib/generators/templates/weixin_controller.rb
|
109
111
|
- lib/generators/weixin_rails_middleware/install_generator.rb
|
110
112
|
- lib/tasks/weixin_rails_middleware_tasks.rake
|
113
|
+
- lib/weixin_rails_middleware.rb
|
111
114
|
- lib/weixin_rails_middleware/configuration.rb
|
112
115
|
- lib/weixin_rails_middleware/engine.rb
|
113
116
|
- lib/weixin_rails_middleware/message.rb
|
@@ -115,10 +118,8 @@ files:
|
|
115
118
|
- lib/weixin_rails_middleware/unique_token_helper.rb
|
116
119
|
- lib/weixin_rails_middleware/version.rb
|
117
120
|
- lib/weixin_rails_middleware/weixin_message_helper.rb
|
121
|
+
- lib/weixin_rails_middleware/weixin_server_url.rb
|
118
122
|
- lib/weixin_rails_middleware/weixin_token_form_helper.rb
|
119
|
-
- lib/weixin_rails_middleware.rb
|
120
|
-
- MIT-LICENSE
|
121
|
-
- Rakefile
|
122
123
|
homepage: http://github.com/lanrion/weixin_rails_middleware
|
123
124
|
licenses: []
|
124
125
|
metadata: {}
|
@@ -138,7 +139,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
138
139
|
version: '0'
|
139
140
|
requirements: []
|
140
141
|
rubyforge_project:
|
141
|
-
rubygems_version: 2.
|
142
|
+
rubygems_version: 2.2.2
|
142
143
|
signing_key:
|
143
144
|
specification_version: 4
|
144
145
|
summary: weixin_rails_middleware for integration weixin
|