WeixinRailsMiddleware
This project rocks and uses MIT-LICENSE.
https://rubygems.org/gems/weixin_rails_middleware
Example: https://github.com/lanrion/weixin_rails_middleware_example
Function
自动验证微信请求。
无需拼接XML格式,只需要使用
WeixinMessageHelper辅助方法,即可快速回复。 使用方法:render xml: reply_text_message("Your Message: #{current_message.Content}")支持自定义token,适合一个用户使用。
支持多用户token: 适合多用户注册网站,每个用户有不同的token,通过
weixin_rails_middleware.rb配置好存储token的Model与字段名,即可。文本回复:
reply_text_message(content)。音乐回复:
reply_music_message(music),generate_music(title, desc, music_url, hq_music_url)。图文回复:
reply_news_message(articles),generate_article(title, desc, pic_url, link_url)。视频回复:
replay_video_message(video)。语音回复:
reply_voice_message(voice)。图片回复:
reply_imgage_message(image)。地理位置回复: 自定义需求。
Install
In your Gemfile: gem 'weixin_rails_middleware'
And bundle intall
Init weixin_rails_middleware
rails generate weixin_rails_middleware:install
It will create config/initializers/weixin_rails_middleware.rb
Note: You need to checkout comments in file
And
Create app/decorators/controllers/weixin_rails_middleware/weixin_controller_decorator.rb
Note: You need to overwrite the reply method. And there are two instance: @weixin_message,
@weixin_public_account(token_model instance if you setup, otherwise return nil)
Other
Add a line: WeixinRailsMiddleware::Engine, at: WeixinRailsMiddleware.config.engine_path in routes.rb
Helpers
Please see detail in weixin_message_helper.rb
How to test
Install ngrok and run with ngrok 4000, 4000 is your port that Rails Server needed
Then, it will generate like this:
Tunnel Status online
Version 1.6/1.5
Forwarding http://e0ede89.ngrok.com -> 127.0.0.1:4000
Forwarding https://e0ede89.ngrok.com -> 127.0.0.1:4000
Web Interface 127.0.0.1:4040
# Conn 67
Avg Conn Time 839.50ms
Yes, She is http://e0ede89.ngrok.com
神器!!
XML parser
We use roxml to generate XML and use multi_xml to parse XML, but we let them all use nokogiri plugin default.
TODO
- 添加微信自定义菜单
- 多媒体资料上传