微信自定义菜单 实现其实非常简单。只不过很多人不知道怎么写代码 怎么去做。
下面po上我的实现方法,以备后用。
1、拿到access_token
- <?php
- /**
- * get access token
- * @author Ren Kan <rk6556(a)gmail.com>
- */
- header("Content-type: text/html; charset=utf-8");
- $appid = "YOUR APPID";
- $appsecret = "YOUR APP SECRET";
- $url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=".$appid."&secret=".$appsecret;
- $content = file_get_contents($url);
- $info = json_decode($content);
- echo $info->access_token;
- ?>
2、配置自定义菜单
- $ACCESS_TOKEN = "THE ACCESS TOKEN GOT ABOVE";
- /* 这里是视图类型的自定义菜单反馈条目
- {
- "type": "view",
- "name": "关于我们",
- "url": "http://blog.csdn.net/rk2900"
- }
- */
- $data = '{
- "button":
- [
- {
- "name": "绑定相关",
- "sub_button":
- [
- {
- "type": "click",
- "name": "绑定账号",
- "key": "BIND_DEVICE"
- },
- {
- "type": "click",
- "name": "绑定状态",
- "key": "BIND_INFO"
- },
- {
- "type": "click",
- "name": "解除绑定",
- "key": "BIND_CANCEL"
- }
- ]
- },
- {
- "name": "相册操作",
- "sub_button":
- [
- {
- "type": "click",
- "name": "删除上一张",
- "key": "DELETE_LAST"
- },
- {
- "type": "click",
- "name": "浏览相册",
- "key": "BROWSE"
- }
- ]
- },
- {
- "name": "购买微相框",
- "sub_button":
- [
- {
- "type": "click",
- "name": "客服电话",
- "key": "PHONE"
- },
- {
- "type": "click",
- "name": "购买方式",
- "key": "BUY"
- }
- ]
- }
- ]
- }';
- echo $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);
- echo $ch;
- $tmpInfo = curl_exec($ch);
- if (curl_errno($ch))
- {
- echo 'Errno'.curl_error($ch);
- }
- curl_close($ch);
- echo $tempInfo;
- /**/
以上代码构建以后,只需要终端利用命令php shellname.php依次执行即可。
效果在公众账号页面过会就会看到更新了。
效果如下: