开发者获取使用凭证(如何获取凭证)后,可以使用该凭证对公众账号的自定义菜单进行创建、查询和删除等操作。 自定义菜单接口可实现以下类型按钮:
click(点击事件):
用户点击click类型按钮后,微信服务器会通过消息接口(event类型)推送点击事件给开发者,并且带上按钮中开发者填写的key值,开发者可以通过自定义的key值进行消息回复。
view(访问网页):
用户点击view类型按钮后,会直接跳转到开发者指定的url中。
创建自定义菜单后,由于微信客户端缓存,需要24小时微信客户端才会展现出来。建议测试时可以尝试取消关注公众账号后,再次关注,则可以看到创建后的效果。
通过POST一个特定结构体,实现在微信客户端创建自定义菜单。
http请求方式:POST
https://api.weixin.qq.com/cgi-bin/menu/create?access_token=ACCESS_TOKEN
源码如下,php版本的html5微信自定义菜单开发
header("Content-type: text/html; charset=utf-8");
		define("ACCESS_TOKEN", "你的ACCESS_TOKEN");
	
		//创建菜单
	
		function createMenu($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);
	
		 $tmpInfo = curl_exec($ch);
	
		 if (curl_errno($ch)) {
	
		  return curl_error($ch);
	
		 }
	
		 curl_close($ch);
	
		 return $tmpInfo;
	
		}
	
		//获取菜单
	
		function getMenu(){
	
		 return file_get_contents("https://api.weixin.qq.com/cgi-bin/menu/get?access_token=".ACCESS_TOKEN);
	
		}
	
		//删除菜单
	
		function deleteMenu(){
	
		 return file_get_contents("https://api.weixin.qq.com/cgi-bin/menu/delete?access_token=".ACCESS_TOKEN);
	
		}
	
		$data = '{
	
		     "button":[
	
		     { 
	
		          "type":"click",
	
		          "name":"今日歌曲",
	
		          "key":"V1001_TODAY_MUSIC"
	
		      },
	
		      {
	
		           "type":"click",
	
		           "name":"歌手简介",
	
		           "key":"V1001_TODAY_SINGER"
	
		      },
	
		      {
	
		           "name":"菜单",
	
		           "sub_button":[
	
		            {
	
		               "type":"click",
	
		               "name":"hello word",
	
		               "key":"V1001_HELLO_WORLD"
	
		            },
	
		            {
	
		               "type":"click",
	
		               "name":"赞一下我们",
	
		               "key":"V1001_GOOD"
	
		            }]
	
		       }]
	
		 }';
	
		echo createMenu($data);
	
		echo getMenu();
	
		//echo deleteMenu();
	
坚持更新博客就像坚持写日记一样,不仅是习惯,也是耐力,表示支持