最近单位搞了微信的公众平台做营销,其中就包括自定义菜单的实现,51模板集分享代码给大家一起来学习,若你是初学者还等什么直接上代码把。


  自微信进入5.0,公众号有了服务号和订阅号的区别,其中一个很重要的区别就是服务号可以自定义菜单,而订阅号不可以,所以这篇文章只适合打算开发服务号的朋友。


  读这篇文章时,假设你已经成功的申请到了自定义菜单了权限,如果没有,推荐你去看看这篇博文 《自定义菜单的创建及菜单事件响应》,那么现在你已经有了自己的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(); 

 

    ?>


  注意一点:由于微信缓存的原因,你可能需要取消订阅你原来的微信号后再重新订阅才能看到菜单的效果:51模板集给您介绍更加详细了吧