# 获取自定义菜单配置

调试工具

接口应在服务器端调用,不可在前端(小程序、网页、APP等)直接调用,具体可参考接口调用指南

接口英文名:getMenu

使用接口创建自定义菜单后,开发者还可使用接口查询自定义菜单的结构。

# 1. 调用方式

# HTTPS 调用

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

# 云调用

  • 调用方法:officialAccount.menu.get

  • 出入参和 HTTPS 调用相同,调用方式可查看 云调用 说明文档

# 第三方调用

  • 本接口支持第三方平台代商家调用。

  • 该接口所属的权限集 id 为:15

  • 服务商获得其中之一权限集授权后,可通过使用 authorizer_access_token 代商家进行调用,具体可查看 第三方调用 说明文档。

# 2. 请求参数

# 查询参数 Query String parameters

参数名类型必填说明
access_tokenstring接口调用凭证,可使用 access_tokenauthorizer_access_token

# 请求体 Request Payload

# 3. 返回参数

# 返回体 Response Payload

参数名类型说明
menuobject默认菜单信息
conditionalmenuobjarray个性化菜单列表

# Res.menu Object Payload

默认菜单信息

参数名类型说明
buttonobjarray一级菜单数组(1-3个)

# Res.conditionalmenu(Array) Object Payload

个性化菜单列表

参数名类型说明
buttonobjarray一级菜单数组(1-3个)
matchruleobject菜单匹配规则(至少一个非空字段)

# Res.menu.button(Array) Object Payload

一级菜单数组(1-3个)

参数名类型示例说明
typestringclick菜单的响应动作类型(与 sub_button 互斥)
namestring今日歌曲菜单标题,不超过16个字节,子菜单不超过60个字节
keystring-菜单KEY值,用于消息接口推送,不超过128字节。click等点击类型必须。
urlstring-网页链接,用户点击菜单可打开链接,不超过1024字节。 type为miniprogram时,不支持小程序的老版本客户端将打开本url。view、miniprogram类型必填。
media_idstring-调用新增永久素材接口返回的合法media_id。media_id类型和view_limited类型必须
appidstring-小程序的appid(仅认证公众号可配置),miniprogram类型必须
pagepathstring-小程序的页面路径,miniprogram类型必须
article_idstring-发布后获得的合法 article_id,article_id类型和article_view_limited类型必须
sub_buttonobjarray-二级菜单结构体数组

# Res.menu.button(Array).sub_buttonObject Payload

二级菜单结构体数组

参数名类型示例说明
typestringclick菜单的响应动作类型(同一级菜单的 type)
namestring今日歌曲菜单标题,不超过16个字节,子菜单不超过60个字节
keystring-菜单KEY值,用于消息接口推送,不超过128字节。click等点击类型必须。
urlstring-网页链接,用户点击菜单可打开链接,不超过1024字节。 type为miniprogram时,不支持小程序的老版本客户端将打开本url。view、miniprogram类型必填。
media_idstring-调用新增永久素材接口返回的合法media_id。media_id类型和view_limited类型必须
appidstring-小程序的appid(仅认证公众号可配置),miniprogram类型必须
pagepathstring-小程序的页面路径,miniprogram类型必须
article_idstring-发布后获得的合法 article_id,article_id类型和article_view_limited类型必须

# Res.conditionalmenu(Array).buttonObject Payload

一级菜单数组(1-3个)

参数名类型示例说明
typestringclick菜单的响应动作类型(与 sub_button 互斥)
namestring今日歌曲菜单标题,不超过16个字节,子菜单不超过60个字节
keystring-菜单KEY值,用于消息接口推送,不超过128字节。click等点击类型必须。
urlstring-网页链接,用户点击菜单可打开链接,不超过1024字节。 type为miniprogram时,不支持小程序的老版本客户端将打开本url。view、miniprogram类型必填。
media_idstring-调用新增永久素材接口返回的合法media_id。media_id类型和view_limited类型必须
appidstring-小程序的appid(仅认证公众号可配置),miniprogram类型必须
pagepathstring-小程序的页面路径,miniprogram类型必须
article_idstring-发布后获得的合法 article_id,article_id类型和article_view_limited类型必须
sub_buttonobjarray-二级菜单结构体数组

# Res.conditionalmenu(Array).button.sub_buttonObject Payload

二级菜单结构体数组

参数名类型示例说明
typestringclick菜单的响应动作类型(同一级菜单的 type)
namestring今日歌曲菜单标题,不超过16个字节,子菜单不超过60个字节
keystring-菜单KEY值,用于消息接口推送,不超过128字节。click等点击类型必须。
urlstring-网页链接,用户点击菜单可打开链接,不超过1024字节。 type为miniprogram时,不支持小程序的老版本客户端将打开本url。view、miniprogram类型必填。
media_idstring-调用新增永久素材接口返回的合法media_id。media_id类型和view_limited类型必须
appidstring-小程序的appid(仅认证公众号可配置),miniprogram类型必须
pagepathstring-小程序的页面路径,miniprogram类型必须
article_idstring-发布后获得的合法 article_id,article_id类型和article_view_limited类型必须

# Res.conditionalmenu(Array).matchrule Object Payload

菜单匹配规则(至少一个非空字段)

参数名类型示例说明
tag_idstring-用户标签的id,可通过用户标签管理接口获取
client_platform_typestring1客户端版本,当前只具体到系统型号:IOS(1), Android(2),Others(3),不填则不做匹配

# 4. 注意事项

在设置了个性化菜单后,使用本自定义菜单查询接口可以获取默认菜单和全部个性化菜单信息。

# 5. 代码示例

# 5.1 查询默认菜单

请求示例

返回示例

{
  "menu": {
    "button": [
      {
        "type": "click",
        "name": "今日歌曲",
        "key": "V1001_TODAY_MUSIC",
        "sub_button": []
      }
    ]
  }
}

# 5.2 查询个性化菜单

请求示例

返回示例

{
  "menu": {
    "button": [
      {
        "type": "click",
        "name": "今日歌曲",
        "key": "V1001_TODAY_MUSIC",
        "sub_button": []
      }
    ],
    "menuid": 208396938
  },
  "conditionalmenu": [
    {
      "button": [
        {
          "type": "click",
          "name": "今日歌曲",
          "key": "V1001_TODAY_MUSIC",
          "sub_button": []
        }
      ],
      "matchrule": {
        "group_id": 2,
        "sex": 1
      },
      "menuid": 208396993
    }
  ]
}

# 6. 错误码

以下是本接口的错误码列表,其他错误码可参考 通用错误码

错误码错误描述解决方案
0ok正常

# 7. 适用范围

本接口在不同账号类型下的可调用情况:
公众号服务号
  • ✔:该账号可调用此接口
  • 其他未明确声明的账号类型,如无特殊说明,均不可调用此接口;