Ruby on Rails微信开发3——自定义菜单的创建
2015-01-09 11:46
405 查看
根据自定义菜单创建的开发者文档
![](http://img.blog.csdn.net/20150109114022865?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbGlzc2R5/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
创建自定义菜单,创建步骤如下:
1、获取access_token
2、将自定义菜单内容定义在yml中,例如如下格式
![](http://img.blog.csdn.net/20150109133733220?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbGlzc2R5/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
3、向微信服务器发送post请求,创建自定义菜单
![](http://img.blog.csdn.net/20150109114605785?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbGlzc2R5/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
自定义菜单事件的响应:
如上“旅行是正室”按钮对应的key为TRAVEL,对应的处理代码如下
创建自定义菜单,创建步骤如下:
1、获取access_token
def get_access_token response=Typhoeus.get("https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=#{get_app_id}&secret=#{get_app_secret}") response_json=JSON.parse(response.options[:response_body]) response_json["access_token"] end
2、将自定义菜单内容定义在yml中,例如如下格式
3、向微信服务器发送post请求,创建自定义菜单
def create_menu post_url = "https://api.weixin.qq.com/cgi-bin/menu/create?access_token=#{get_access_token}" wechat_button_yml = load_yml_file "wechat_button.yml" post_hash = wechat_button_yml['menu'] Typhoeus::Request.post(post_url, body: generate_post_hash(post_hash)) end def load_yml_file file_name yml_name = Rails.root.join(Rails.root, ‘yml文件位置', file_name) YAML.load_file(yml_name) end #处理菜单中文问题 def generate_post_hash post_hash post_hash.to_json.gsub!(/\\u([0-9a-z]{4})/) { |s| [$1.to_i(16)].pack("U") } end创建结果如下:
自定义菜单事件的响应:
如上“旅行是正室”按钮对应的key为TRAVEL,对应的处理代码如下
#接收微信服务器信息 def process_request if check_signature?(params[:signature], params[:timestamp], params[:nonce]) if params[:xml][:MsgType] == "event" && params[:xml][:Event] == "CLICK" if params[:xml][:EventKey] == "TRAVEL" render "wechat/building", layout: false, :formats => :xml end end end end部署到服务器之后测试效果如下:
相关文章推荐
- Ruby on rails开发从头来(四十四)- ActiveRecord基础(创建记录)
- Ruby on rails开发从头来(windows)(八)-使用Session创建购物车
- Ruby on Rails,创建开发用的MYSQL数据库
- 微信公众帐号开发教程第14篇-自定义菜单的创建及菜单事件响应 (Java版)
- 微信公众帐号开发教程第14篇-自定义菜单的创建及菜单事件响应 (14)
- Ruby on Rails(ROR) 实例开发之一 创建开发项目环境
- Ruby on rails开发从头来(windows)(二)-创建项目和第一个Hello world
- 微信公众帐号开发教程第14篇-自定义菜单的创建及菜单事件响应
- 微信公众帐号开发教程第14篇-自定义菜单的创建及菜单事件响应
- Ruby on Rails,创建开发用的MYSQL数据库
- Ruby on rails开发从头来(windows)(七)-创建在线购物页面(修正原版错误)
- Ruby on rails开发从头来(windows)(二)-创建项目和第一个Hello world (修正原版错误)
- Ruby on rails开发从头来(windows)(二)-创建项目和第一个Hello world
- [038] 微信公众帐号开发教程第14篇-自定义菜单的创建及菜单事件响应 .
- Ruby on rails开发从头来(windows)(七)-创建在线购物页面
- Ruby on rails开发从头来(四十四)- ActiveRecord基础(创建记录)
- Ruby on rails开发从头来(windows)(七)-创建在线购物页面
- Ruby on Rails(ROR) 实例开发之一 创建数据表
- Ruby on rails开发从头来(windows)(七)-创建在线购物页面
- [038] 微信公众帐号开发教程第14篇-自定义菜单的创建及菜单事件响应