详解微信公众平台自定义菜单接口

开发者获取使用凭证( 如何获取凭证 )后,可以使用该凭证对公众账号的自定义菜单进行创建、查询和删除等操作。 自定义菜单接口可实现以下类型按钮: click (点击事件): 用户点击click类型按钮后,微信服务器会通过 消息接口(event类型) 推送点击事件...

  开发者获取使用凭证(如何获取凭证)后,可以使用该凭证对公众账号的自定义菜单进行创建、查询和删除等操作。 自定义菜单接口可实现以下类型按钮:

  click(点击事件):

  用户点击click类型按钮后,微信服务器会通过消息接口(event类型)推送点击事件给开发者,并且带上按钮中开发者填写的key值,开发者可以通过自定义的key值进行消息回复。
  创建自定义菜单后,由于微信客户端缓存,需要24小时微信客户端才会展现出来。建议测试时可以尝试取消关注公众账号后,再次关注,则可以看到创建后的效果。

  菜单创建
  接口说明

  通过POST一个特定结构体,实现在微信客户端创建自定义菜单。

 

菜单创建

接口说明

通过POST一个特定结构体,实现在微信客户端创建自定义菜单。


请求说明

http请求方式:POST

https://api.weixin.qq.com/cgi-bin/menu/create?access_token=ACCESS_TOKEN

请求示例

 {
     "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"
            }]
       }]
 }

创建后效果:

创建后效果

参数说明

参数是否必须说明
button按钮数组,按钮个数应为2~3个
sub_button子按钮数组,按钮个数应为2~5个
type按钮类型,目前有click类型
name按钮描述,既按钮名字,不超过16个字节,子菜单不超过40个字节
key类型为click必须按钮KEY值,用于消息接口(event类型)推送,不超过128字节

返回说明

正确的Json返回结果:

{"errcode":0,"errmsg":"ok"}

错误的Json返回结果

{"errcode":40018,"errmsg":"invalid button name size"}


菜单查询

接口说明

查询当前使用的自定义菜单结构。

请求说明

http请求方式:GET

https://api.weixin.qq.com/cgi-bin/menu/get?access_token=ACCESS_TOKEN

返回说明

对应创建接口,正确的Json返回结果:
{"menu":
	{"button":
		[
			{"type":"click","name":"今日歌曲","key":"V1001_TODAY_MUSIC","sub_button":[]},
			{"type":"click","name":"歌手简介","key":"V1001_TODAY_SINGER","sub_button":[]},
			{"name":"菜单","sub_button":
				[
					{"type":"click","name":"hello word","key":"V1001_HELLO_WORLD","sub_button":[]},
					{"type":"click","name":"赞一下我们","key":"V1001_GOOD","sub_button":[]}
				]
			}
		]
	}
}  

 

菜单删除

接口说明

取消当前使用的自定义菜单。

请求说明

http请求方式:GET
https://api.weixin.qq.com/cgi-bin/menu/delete?access_token=ACCESS_TOKEN

返回说明

对应创建接口,正确的Json返回结果:
{"errcode":0,"errmsg":"ok"}