# 查询自定义菜单信息

[调试诊断](https://developers.weixin.qq.com/console/devtools/debug?utm_source=api_tools)

> 接口应在服务器端调用，不可在前端（小程序、网页、APP等）直接调用，具体可参考[接口调用指南](/doc/oplatform/developers/dev/guide.md)。

接口英文名：getCurrentSelfmenuInfo

本接口提供公众号当前使用的自定义菜单的配置，如果公众号是通过API调用设置的菜单，则返回菜单的开发配置，而如果公众号是在公众平台官网通过网站功能发布菜单，则本接口返回运营者设置的菜单配置。

## 1. 调用方式

### HTTPS 调用

```bash
GET https://api.weixin.qq.com/cgi-bin/get_current_selfmenu_info?access_token=ACCESS_TOKEN
```

### 云调用

- 调用方法：officialAccount.menu.getSelfMenu

- 出入参和 HTTPS 调用相同，调用方式可查看 [云调用](/doc/oplatform/developers/dev/cloudCall.md) 说明文档。

### 第三方调用

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

- 该接口所属的权限集 id 为：1、3、15

- 服务商获得其中之一权限集授权后，可通过使用 [authorizer_access_token](/doc/oplatform/developers/dev/AuthorizerAccessToken.md) 代商家进行调用，具体可查看 [第三方调用](/doc/oplatform/Third-party_Platforms/2.0/Before_Develop/call_interface.md) 说明文档。

## 2. 请求参数

### 查询参数 `Query String Parameters`

```json
[
  {
    "参数名": "access_token",
    "类型": "string",
    "必填": "是",
    "示例": "ACCESS_TOKEN",
    "说明": "接口调用凭证，可使用 [access_token](/doc/service/api/base/api_getaccesstoken)、[authorizer_access_token](/doc/oplatform/openApi/ticket-token/api_getauthorizeraccesstoken.md)"
  }
]
```

### 请求体 `Request Payload`

无

## 3. 返回参数

### 返回体 `Response Payload`

```json
[
  {
    "参数名": "is_menu_open",
    "类型": "number",
    "示例": "0",
    "说明": "菜单是否开启，0代表未开启，1代表开启",
    "枚举": "0\n1"
  },
  {
    "参数名": "selfmenu_info",
    "类型": "object",
    "示例": "-",
    "说明": "菜单信息",
    "枚举": "-"
  }
]
```

### Res.selfmenu_info `Object Payload`

菜单信息

```json
[
  {
    "参数名": "button",
    "类型": "objarray",
    "说明": "菜单按钮"
  }
]
```

">

### Res.selfmenu_info.button(Array) `Object Payload`

菜单按钮

```json
[
  {
    "参数名": "type",
    "类型": "string",
    "示例": "click",
    "说明": "菜单的类型，具体参考新增 API 的描述"
  },
  {
    "参数名": "name",
    "类型": "string",
    "示例": "今日歌曲",
    "说明": "菜单名称"
  },
  {
    "参数名": "value",
    "类型": "string",
    "示例": "-",
    "说明": "对于不同的菜单类型，value的值意义不同。官网上设置的自定义菜单： Text:保存文字到value； Img、voice：保存mediaID到value； Video：保存视频下载链接到value； News：保存图文消息到news_info，同时保存mediaID到value； View：保存链接到url。 使用API设置的自定义菜单： click、scancode_push、scancode_waitmsg、pic_sysphoto、pic_photo_or_album、 pic_weixin、location_select：保存值到key；view：保存链接到url"
  },
  {
    "参数名": "url",
    "类型": "string",
    "示例": "-",
    "说明": "对于不同的菜单类型，value的值意义不同。官网上设置的自定义菜单： Text:保存文字到value； Img、voice：保存mediaID到value； Video：保存视频下载链接到value； News：保存图文消息到news_info，同时保存mediaID到value； View：保存链接到url。 使用API设置的自定义菜单： click、scancode_push、scancode_waitmsg、pic_sysphoto、pic_photo_or_album、 pic_weixin、location_select：保存值到key；view：保存链接到url"
  },
  {
    "参数名": "key",
    "类型": "string",
    "示例": "-",
    "说明": "对于不同的菜单类型，value的值意义不同。官网上设置的自定义菜单： Text:保存文字到value； Img、voice：保存mediaID到value； Video：保存视频下载链接到value； News：保存图文消息到news_info，同时保存mediaID到value； View：保存链接到url。 使用API设置的自定义菜单： click、scancode_push、scancode_waitmsg、pic_sysphoto、pic_photo_or_album、 pic_weixin、location_select：保存值到key；view：保存链接到url"
  },
  {
    "参数名": "news_info",
    "类型": "object",
    "示例": "-",
    "说明": "图文消息的信息"
  }
]
```

__news_info">

### Res.selfmenu_info.button(Array).news_info `Object Payload`

图文消息的信息

```json
[
  {
    "参数名": "list",
    "类型": "objarray",
    "说明": "图文消息列表"
  }
]
```

__news_info__list">

### Res.selfmenu_info.button(Array).news_info.list `Object Payload`

图文消息列表

```json
[
  {
    "参数名": "title",
    "类型": "string",
    "说明": "标题",
    "枚举": "-"
  },
  {
    "参数名": "digest",
    "类型": "string",
    "说明": "摘要",
    "枚举": "-"
  },
  {
    "参数名": "author",
    "类型": "string",
    "说明": "作者",
    "枚举": "-"
  },
  {
    "参数名": "show_cover",
    "类型": "number",
    "说明": "是否显示封面，0为不显示，1为显示",
    "枚举": "0\n1"
  },
  {
    "参数名": "cover_url",
    "类型": "string",
    "说明": "封面图片的URL",
    "枚举": "-"
  },
  {
    "参数名": "content_url",
    "类型": "string",
    "说明": "正文的URL",
    "枚举": "-"
  },
  {
    "参数名": "source_url",
    "类型": "-",
    "说明": "原文的URL，若置空则无查看原文入口",
    "枚举": "-"
  }
]
```

## 4. 注意事项

1. 第三方平台开发者可以通过本接口，在旗下公众号将业务授权给你后，立即通过本接口检测公众号的自定义菜单配置，并通过接口再次给公众号设置好自动回复规则，以提升公众号运营者的业务体验。
2. 本接口与自定义菜单查询接口的不同之处在于，自定义菜单查询接口仅能查询到使用API设置的菜单，本接口除了能查看使用API设置的菜单，还可以查看账号通过公众平台官网（mp.weixin.qq.com）中设置的菜单。
3. 认证/未认证的服务号/公众号，以及接口测试号，均拥有该接口权限。
4. 从第三方平台的公众号登录授权机制上来说，该接口从属于消息与菜单权限集。
5. 本接口中返回的图片/语音/视频为临时素材（临时素材每次获取都不同，3天内有效，通过素材管理-获取临时素材接口来获取这些素材），本接口返回的图文消息为永久素材素材（通过素材管理-获取永久素材接口来获取这些素材）。

## 5. 代码示例

### 5.1 官网设置菜单示例

请求示例

```json
{}
```

返回示例

```json
{
   "is_menu_open": 1,
   "selfmenu_info": {
       "button": [
           {
               "name": "button",
               "sub_button": {
                   "list": [
                       {
                           "type": "view",
                           "name": "view_url",
                           "url": "http://www.qq.com"
                       },
                       {
                           "type": "news",
                           "name": "news",
                           "value":"KQb_w_Tiz-nSdVLoTV35Psmty8hGBulGhEdbb9SKs-o",
                           "news_info": {
                               "list": [
                                   {
                                       "title": "MULTI_NEWS",
                                       "author": "JIMZHENG",
                                       "digest": "text",
                                       "show_cover": 0,
                                       "cover_url": "http://mmbiz.qpic.cn/mmbiz/GE7et87vE9vicuCibqXsX9GPPLuEtBfXfK0HKuBIa1A1cypS0uY1wickv70iaY1gf3I1DTszuJoS3lAVLvhTcm9sDA/0",
                                       "content_url": "http://mp.weixin.qq.com/s?__biz=MjM5ODUwNTM3Ng==&mid=204013432&idx=1&sn=80ce6d9abcb832237bf86c87e50fda15#rd",
                                       "source_url": ""
                                   },
                                   {
                                       "title": "MULTI_NEWS1",
                                       "author": "JIMZHENG",
                                       "digest": "MULTI_NEWS1",
                                       "show_cover": 1,
                                       "cover_url": "http://mmbiz.qpic.cn/mmbiz/GE7et87vE9vicuCibqXsX9GPPLuEtBfXfKnmnpXYgWmQD5gXUrEApIYBCgvh2yHsu3ic3anDUGtUCHwjiaEC5bicd7A/0",
                                       "content_url": "http://mp.weixin.qq.com/s?__biz=MjM5ODUwNTM3Ng==&mid=204013432&idx=2&sn=8226843afb14ecdecb08d9ce46bc1d37#rd",
                                       "source_url": ""
                                   }
                               ]
                           }
                       },
                       {
                           "type": "video",
                           "name": "video",
                           "value": "http://61.182.130.30/vweixinp.tc.qq.com/1007_114bcede9a2244eeb5ab7f76d951df5f.f10.mp4?vkey=77A42D0C2015FBB0A3653D29C571B5F4BBF1D243FBEF17F09C24FF1F2F22E30881BD350E360BC53F&sha=0&save=1"
                       },
                       {
                           "type": "voice",
                           "name": "voice",
                           "value": "nTXe3aghlQ4XYHa0AQPWiQQbFW9RVtaYTLPC1PCQx11qc9UB6CiUPFjdkeEtJicn"
                       }
                   ]
               }
           },
           {
               "type": "text",
               "name": "text",
               "value": "This is text!"
           },
           {
               "type": "img",
               "name": "photo",
               "value": "ax5Whs5dsoomJLEppAvftBUuH7CgXCZGFbFJifmbUjnQk_ierMHY99Y5d2Cv14RD"
           }
       ]
   }
}
```

### 5.2 API设置菜单示例

请求示例

``` json
{}
```

返回示例

```json
{
   "is_menu_open": 1,
   "selfmenu_info": {
       "button": [
           {
               "type": "click",
               "name": "今日歌曲",
               "key": "V1001_TODAY_MUSIC"
           },
           {
               "name": "菜单",
               "sub_button": {
                   "list": [
                       {
                           "type": "view",
                           "name": "搜索",
                           "url": "http://www.soso.com/"
                       },
                       {
                           "type": "view",
                           "name": "视频",
                           "url": "http://v.qq.com/"
                       },
                       {
                           "type": "click",
                           "name": "赞一下我们",
                           "key": "V1001_GOOD"
                       }
                   ]
               }
           }
       ]
   }
```

## 6. 错误码

以下是本接口的错误码列表，其他错误码可参考 [通用错误码](/doc/oplatform/developers/errCode/README.md)；调用接口遇到报错，可使用官方提供的 [API 诊断工具](https://developers.weixin.qq.com/console/devtools/debug?utm_source=api_errcode) 辅助定位和分析问题。

```json
[
  {
    "错误码": "-1",
    "错误描述": "system error",
    "解决方案": "系统繁忙，此时请开发者稍候再试"
  },
  {
    "错误码": "40001",
    "错误描述": "invalid credential  access_token isinvalid or not latest",
    "解决方案": "access_token 无效或不为最新获取的 access_token，请开发者确认access_token的有效性"
  }
]
```

## 7. 适用范围

本接口在不同账号类型下的可调用情况：

```json
[
  {
    "公众号": "✔",
    "服务号": "✔"
  }
]
```

- ✔：该账号可调用此接口。
- 其他未明确声明的账号类型，如无特殊说明，均不可调用此接口。
