利用PHP开发微信公众平台自定义菜单

69 次浏览 15 分钟阅读 0 个喜欢

最近要做一个微信公众账号,花了点时间已经将一部分功能完成,其中就包括自定义菜单的实现,现在就将一些代码分享给大家,觉得对自己有帮助就看看!

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

?>