Ruby on Rails微信开发3——自定义菜单的创建
来源:互联网 发布:淘宝店运动壹号怎么样 编辑:程序博客网 时间:2024/06/06 04:26
根据自定义菜单创建的开发者文档
创建自定义菜单,创建步骤如下:
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部署到服务器之后测试效果如下:
0 0
- Ruby on Rails微信开发3——自定义菜单的创建
- Ruby on Rails微信开发3——自定义菜单的创建
- Ruby on Rails微信开发1——开发模式的启用与接口配置
- Ruby on Rails微信开发1——开发模式的启用与接口配置
- Ruby on Rails微信开发2——消息的接收与响应
- Ruby on Rails微信开发4——通过网页授权获取用户的基本信息
- Ruby on Rails微信开发2——消息的接收与响应
- Ruby on Rails微信开发4——通过网页授权获取用户的基本信息
- Java微信公众平台开发(十)——微信自定义菜单的创建实现
- Ruby on Rails,创建开发用的MYSQL数据库
- 微信公众号开发(四)—— 自定义菜单的创建
- 微信开发之自定义菜单创建
- 微信开发创建自定义菜单
- 手把手教会你微信公众平台自定义菜单开发——创建菜单
- Ruby on Rails开发的五点建议
- Ruby on Rails入门——macOS 下搭建Ruby Rails Web开发环境
- Ruby on Rails(ROR) 实例开发之一 创建数据表
- Ruby on Rails(ROR) 实例开发之一 scaffold创建框架
- 单点登入登出
- Android通过包名启动Activity
- 导出Excel
- 运维工程师职业发展路线经验分享
- android 应用的基本组件介绍
- Ruby on Rails微信开发3——自定义菜单的创建
- jsp中的basePath
- 继续开始学习Java
- startActivityForResult
- spring 单元测试
- 21个Sharepoint APP
- Hibernate4基础之四:基础配置@Table@Column@Temporal@Transient@Enumerated
- unity3d---数据库基础查询和连接数据库
- C#使用HttpWebRequest 进行get 和post提交