手把手教会你微信公众平台自定义菜单开发——创建菜单
2014-05-11 22:20
411 查看
转自http://deng7784033.blog.163.com/blog/static/3826426620138510731934/
如既往的,关于微信公众平台的开发,不算出自大牛的代码,但是简单易懂适合刚入门的朋友。
首先先介绍一下逻辑,因为发现很多朋友都不能看懂微信官方的文档,当然啦,这跟你是否认真看有关的,认真看总能看懂的,废话不说了。此时,我当你已经有一个已经申请到自定义菜单开发权限的微信服务号。首先,你要在后台开发模式下面找到你的AppId 还有 AppSecret并且记下来,然后通过这两个官方发放给你的ID去获取一个ACCESS_TOKEN【官方解释是:第三方访问api资源的票据】,稍后会通过这个ACCESS_TOKEN,提交你的菜单。
下面教你怎么获取这个ACCESS_TOKEN:
访问这个链接https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET
但是访问之前,把刚才让你记下来的AppId 还有 AppSecret 替换到链接里面,然后复制到浏览器地址栏,一访问,就返回几个数据,里面最长的那段就是我们要的ACCESS_TOKEN了。【当然,如果你还是不明白这个链接怎么替换,那我只能再写明白点了就是下面https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=你的APPID&secret=你的APPSECRET 】
要注意的是,这个ACCESS_TOKEN 是有时间限制的,超过了一定时间就会失效。就要重新获取;另外,如果你刚获取之后,又不小心获取了一次,那么前一次获取到的值会失效,第二次的值生效。
接下来教大家怎么创建菜单,代码如下:
如代码所示,菜单有两种,一种是直接跳转到URL页面,即view;另一种,是发送指令,即click,说白了就是在客户端辅助用户的,可以看成一键发关键词。第一种很好做,填写好URL就完事了,用户点击菜单按钮,然后跳转到你填写的URL地址,缺点是URL地址不变,不够灵活。另一种就是发送指令,可以在公众账号接口开发(注意跟自定义菜单区别开)的时候,判断指令的内容,灵活处理并且动态输出不同的数据。
通过POST方式把菜单的数据发送到微信服务器,在浏览器中看到的返回提示中,你看到OK的字眼,那么就证明已经成功了。创建完菜单之后,由于微信客户端的缓存要24小时才清理一次,所以你要马上看到效果就需要重新关注你的公众账号。此时,你已经尝试到胜利的果实了。
下一次,我将告诉大家怎么利用自定义菜单动态获取图文。内容:1、一个THINKPHP搭建的微网站 2、自定义接口开发技术 3、自定义菜单 关键词:THINKPHP、 微网站、XML 微信自定义接口 微信自定义菜单 描述:用户在微信端选择指定栏目,自动获取微网站相关的若干条图文内容,每次更新都可以获取到不同的内容
如既往的,关于微信公众平台的开发,不算出自大牛的代码,但是简单易懂适合刚入门的朋友。
首先先介绍一下逻辑,因为发现很多朋友都不能看懂微信官方的文档,当然啦,这跟你是否认真看有关的,认真看总能看懂的,废话不说了。此时,我当你已经有一个已经申请到自定义菜单开发权限的微信服务号。首先,你要在后台开发模式下面找到你的AppId 还有 AppSecret并且记下来,然后通过这两个官方发放给你的ID去获取一个ACCESS_TOKEN【官方解释是:第三方访问api资源的票据】,稍后会通过这个ACCESS_TOKEN,提交你的菜单。
下面教你怎么获取这个ACCESS_TOKEN:
访问这个链接https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET
但是访问之前,把刚才让你记下来的AppId 还有 AppSecret 替换到链接里面,然后复制到浏览器地址栏,一访问,就返回几个数据,里面最长的那段就是我们要的ACCESS_TOKEN了。【当然,如果你还是不明白这个链接怎么替换,那我只能再写明白点了就是下面https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=你的APPID&secret=你的APPSECRET 】
要注意的是,这个ACCESS_TOKEN 是有时间限制的,超过了一定时间就会失效。就要重新获取;另外,如果你刚获取之后,又不小心获取了一次,那么前一次获取到的值会失效,第二次的值生效。
接下来教大家怎么创建菜单,代码如下:
<?php header("Content-type: text/html; charset=utf-8"); define("ACCESS_TOKEN", 'NYD-0s6f4yBJecqJ6QAiH7Nivh_gnWhbjs5vY1BZ9zViZAkYfw0QL5cO5ILK7lS3BkUCUrwqlDqzU9OVMaDO44Vuju7ZhXjdpJk8PxHgNf7cTs7rp6dvm-KJSkdiufqbL5niZwHM0uWJVi0mnSLGZg'); //创建菜单 function createMenu($data){ $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, "https://api.weixin.qq.com/cgi-bin/menu/create?access_token=".ACCESS_TOKEN); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (compatible; MSIE 5.01; Windows NT 5.0)'); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($ch, CURLOPT_AUTOREFERER, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $data); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $tmpInfo = curl_exec($ch); if (curl_errno($ch)) { return curl_error($ch); } curl_close($ch); return $tmpInfo; } $data = ' { "button":[ { "name":"时讯", "sub_button":[ { "type":"click", "name":"即时新闻", "key":"jsxw" }, { "type":"click", "name":"财经早餐", "key":"cjzc" }, { "type":"click", "name":"焦点话题", "key":"jdht" }, { "type":"view", "name":"财经日历", "url":"http://stock1.sina.cn/dpool/stockv2/universal_calendar.php?vt=4" }] }, { "name":"说市", "sub_button":[ { "type":"click", "name":"今日看盘", "key":"jrkp" }, { "type":"view", "name":"行情刷新", "url":"http://XX/index.php/market/index" }, { "type":"click", "name":"交易策略", "key":"jycl" }, { "type":"click", "name":"投资天地", "key":"tztd" }, { "type":"click", "name":"投资文库", "key":"tzwk" }] }, { "name":"北鼎在线", "sub_button":[ { "type":"view", "name":"关于我们", "url":"http://www.index.php/article/index/id/114" }, { "type":"view", "name":"最新活动", "url":"http://www.index.php/article/index/id/115" }, { "type":"view", "name":"参与爆料", "url":"http://www.index.php/message" } ] } ] }'; echo createMenu($data);//创建菜单?>
如代码所示,菜单有两种,一种是直接跳转到URL页面,即view;另一种,是发送指令,即click,说白了就是在客户端辅助用户的,可以看成一键发关键词。第一种很好做,填写好URL就完事了,用户点击菜单按钮,然后跳转到你填写的URL地址,缺点是URL地址不变,不够灵活。另一种就是发送指令,可以在公众账号接口开发(注意跟自定义菜单区别开)的时候,判断指令的内容,灵活处理并且动态输出不同的数据。
通过POST方式把菜单的数据发送到微信服务器,在浏览器中看到的返回提示中,你看到OK的字眼,那么就证明已经成功了。创建完菜单之后,由于微信客户端的缓存要24小时才清理一次,所以你要马上看到效果就需要重新关注你的公众账号。此时,你已经尝试到胜利的果实了。
下一次,我将告诉大家怎么利用自定义菜单动态获取图文。内容:1、一个THINKPHP搭建的微网站 2、自定义接口开发技术 3、自定义菜单 关键词:THINKPHP、 微网站、XML 微信自定义接口 微信自定义菜单 描述:用户在微信端选择指定栏目,自动获取微网站相关的若干条图文内容,每次更新都可以获取到不同的内容
相关文章推荐
- 手把手教会你微信公众平台自定义菜单开发——创建菜单
- Java微信公众平台开发(10) 微信自定义菜单的创建实现
- 微信公众平台自定义菜单开发——创建菜单
- 【微信公众平台开发】创建自定义菜单(四)
- 微信公众平台开发学习记录(2)————自定义菜单创建
- Java微信公众平台开发(十)——微信自定义菜单的创建实现
- Java微信公众平台开发(十)——微信自定义菜单的创建实现
- 【微信公众平台开发】创建自定义菜单(四)
- 微信公众平台开发教程Java版(五) 自定义菜单创建
- [052] 微信公众平台开发视频公开课第2讲-自定义菜单开发讲解
- [014]微信公众帐号开发教程第14篇-自定义菜单的创建及菜单事件响应
- 微信公众平台开发(4)-自定义菜单
- 微信公众平台开发(104) 自定义菜单扫一扫、发图片、发地理位置
- 微信公众平台服务号自定义菜单开发代码实例
- 微信开发之自定义菜单创建
- 微信公众平台开发教程(五)自定义菜单
- .NET微信公众号开发之创建自定义菜单
- [038] 微信公众帐号开发教程第14篇-自定义菜单的创建及菜单事件响应
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(74)-微信公众平台开发-自定义菜单
- [052] 微信公众平台开发视频公开课第2讲-自定义菜单开发讲解