微信二次开发-自定义菜单创建接口

自定义菜单

自定义菜单可以更加了解一个公众号。自定义菜单包括3个一级菜单,每个一级菜单只能包含5个二级菜单。一级菜单最多4个字,二级菜单最多7个字。了解完这些我们就可以去自己自定义一个菜单了。

因为自定义菜单的接口为 https://api.weixin.qq.com/cgi-bin/menu/create?access_token=ACCESS_TOKEN,所以我们需要获取到access_token。这是很重要的。每个人用来获取access_token的方法不同。在这里我写一个我获取access_token的方法。

 $arr['expires_in']-300) {
			//如果过时的话,就去获取新的token
			return access();
		}else{
             //如果没有过时的话就去用原来文件里的
			return $arr['access_token'];
		}
	}else{
        //如果文件不存在就去获取
        return access();
	}
}
//获取access_token,返回给调用者,把微信api返回的串写入到文件中把当前时间加进去方便比较
function access(){
$url="https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=".APPID."&secret=".SECRET;
// 创建一个新cURL资源
$ch  =  curl_init ();
// 设置URL和相应的选项
curl_setopt ( $ch ,  CURLOPT_URL ,  $url );
curl_setopt ( $ch ,  CURLOPT_HEADER ,  false );
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
curl_setopt($ch, CURLOPT_SSLVERSION, 1);
// 抓取URL并把它传递给浏览器
$token=curl_exec ( $ch );
//关闭cURL资源,并且释放系统资源
curl_close ( $ch );
// echo $token;
//将json转换为数组
$arr = json_decode($token,true);
// print_r($arr);
if (isset($arr['access_token'])) {
	$create_time=time();
	// echo $create_time;
	//将时间追加入数组中
	$arr['create_time']=$create_time;
	// print_r($arr);
	//从数组转化为json
	$json=json_encode($arr);
	//写入文件里
	file_put_contents(FILE, $json);
}else{
	return false;
}
}
?>

curl_setopt,设置一个curl传输选项。它可以有三个参数。第一个是由curl_in返回的句柄。第二个是需要设置的curlopt选项。第三个是将设置在第二个选项的值。第二个curlopt选项是非常多的,这里就不为大家列举了,大家可以去查一下资料。

注:appid和secret需要真实有效!

正常情况写会返回一个json数据

{"access_token":"ACCESS_TOKEN","expires_in":7200}

因为我们需要给一个与微信公众平台官方一样的xml形式的数据。

$menu=<<< MENU
 {
     "button":[
     {    
          "type":"click",
          "name":"今日歌曲",
          "key":"V1001_TODAY_MUSIC"
      },
      {
           "name":"菜单",
           "sub_button":[
           {    
               "type":"view",
               "name":"搜索",
               "url":"http://www.soso.com/"
            },
            {
               "type":"click",
               "name":"赞一下我们",
               "key":"V1001_GOOD"
            }]
       }]
 }
MENU;

这个数据的格式,大家需要看清楚。如果格式是错误的那么菜单就会出错误。它是一个以{}开始的,里边是“button”:[]。这是一个固定的格式。而button里边则是以{}分割,每一个{},就代表了一个菜单。

上边我们已经获得了access_token。那么我们直接去调用自定义菜单的接口就可以了。大家看一下代码。


这样自定义菜单就完成了。快去看一看你的菜单有没有完成呢!



你可能感兴趣的:(微信二次开发)