最近公司要做一个微信公众账号,花了点时间已经将一部分功能完成,其中就包括自定义菜单的实现,现在就将一些代码分享给大家,觉得对自己有帮助就看看!
自微信进入5.0,公众号有了服务号和订阅号的区别,其中一个很重要的区别就是服务号可以自定义菜单,而订阅号不可以,所以这篇文章只适合打算开发服务号的朋友。
读这篇文章时,假设你已经成功的申请到了自定义菜单了权限,如果没有,推荐你去看看这篇博文 《自定义菜单的创建及菜单事件响应》 http://blog.csdn.net/lyq8479/article/details/9841371 那么现在你已经有了自己的AppId和AppSecret,接下来就是获取Token了,方法很简单,如下所说:
请求说明
http请求方式: GET
https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET
这是微信上面的文档,现在只要把上面链接中的APPID和APPSECRET修改为自己的AppId和AppSecret,然后直接拷贝至浏览器的地址栏窗口,回车即可获取到那个Token了,如下所示,
{"access_token":"NUF35mOfsEQMoLhezC053RrU4G2rpFsvt5CmG6mFZtRhCsPmA3EK3W0ohUacF-d3lKJW6i7q_a9UrKRNPb6IRtX6FT1qRu_LAHi2FTxpxXwFNYFwIkWU2qqRA","expires_in":7200}
现在你的token已经获取成功了,下来就是相关的代码实现了。
public function createMenu(){ $ACCESS_TOKEN = "前面通过浏览器获取到的Token"; $data = '{ "button":[ { "type":"click", "name":"搜索附近", "key":"1" }, { "type":"click", "name":"最新活动", "key":"2" }, { "name":"更多", "sub_button":[ { "type":"click", "name":"关于我们", "key":"3" }, { "type":"click", "name":"用户反馈", "key":"4" }, { "type":"click", "name":"优倍周边", "key":"5" }] }] }'; $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)) { echo 'Errno'.curl_error($ch); } curl_close($ch); var_dump($tmpInfo); }
现在和合适的位置调用上面的方法就可以实现菜单了,
<?php include_once('include/weixin.class.php'); define('TOKEN', 'ubive'); define('DEBUG', false); $weixin->createMenu(); ?>
注意一点:由于微信缓存的原因,你可能需要取消订阅你原来的微信号后再重新订阅才能看到菜单的效果:
补充一句,这篇博文的目的就是为了实现自定义菜单,所以代码也是以实现目标为准,没有做过多的优化,你可以根据自己的需求继续修改,希望对你有所帮助。
如果觉得文章对你有所帮助,请通过留言或关注微信公众帐号ubivea来支持我!