微信公众号菜单API是开发者实现自定义菜单管理的核心技术,能够帮助运营者通过编程方式动态调整公众号底部导航栏,以下为详细指南:
自定义菜单创建
支持设置一级菜单(最多3个)与二级菜单(每个一级菜单下最多5个),可绑定图文消息、小程序、网页链接等6种跳转类型。
菜单事件响应
用户点击菜单时,服务器可通过CLICK
或VIEW
事件触发消息推送,实现自动回复或跳转。
个性化菜单
基于用户属性(性别、地区、语言)或标签分组,展示差异化菜单内容,提升精准运营能力。
获取Access Token
调用接口前需获取有效凭证,使用AppID和AppSecret请求:
GET https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET
构建菜单JSON结构
标准菜单需包含button
数组,每个按钮需定义name
、type
及对应参数,示例:
{ "button": [ { "type": "click", "name": "今日活动", "key": "V1001_TODAY_GIFT" }, { "name": "服务中心", "sub_button": [ { "type": "view", "name": "在线客服", "url": "http://kf.example.com" } ] } ] }
调用创建接口
通过POST请求提交JSON数据至微信服务器:
POST https://api.weixin.qq.com/cgi-bin/menu/create?access_token=ACCESS_TOKEN
参数名 | 必填 | 说明 |
---|---|---|
button |
是 | 菜单按钮数组,一级菜单最多3个 |
type |
是 | 菜单类型:click/view/miniprogram等 |
name |
是 | 菜单名称(中文建议不超过5个字) |
key |
click类型必填 | 事件推送标识,需全局唯一 |
url |
view类型必填 | 网页链接,需经过ICP备案 |
菜单层级优化
避免二级菜单嵌套过深,建议采用“3+5”结构(即3个一级菜单,每个含最多5个子项)以保证移动端显示完整。
权限校验要点
高频错误处理