查询微信自定义菜单接口

  • 作用:获取公众号当前已配置菜单的JSON,常用于把微信菜单同步保存到自己网站数据库
  • 请求方式:GET
  • 接口地址:
https://api.weixin.qq.com/cgi-bin/menu/get?access_token=ACCESS_TOKENCode language: JavaScript (javascript)

参数:access_token 公众号接口调用凭证,拼接在URL后面。

C# 代码

// 拼接请求地址,填充access_token
string url = string.Format("https://api.weixin.qq.com/cgi-bin/menu/get?access_token={0}", obj.access_token);
// GET请求拿到微信返回的菜单json字符串
string json = Tool.HttpGet(url);

// 反序列化为C#实体对象(就是2-2节写的MenuGetResultInfo实体)
MenuGetResultInfo menuInfo = Tool.DeserializeJson<MenuGetResultInfo>(json);
Code language: JavaScript (javascript)

返回JSON说明

  • 公众号有菜单:返回包含menu节点,里面是button菜单数组(一级菜单),菜单对象里可以包含sub_button二级子菜单数组。
  • 公众号没有设置任何菜单:会返回 {"errcode":46003,"errmsg":"no menu data"}

业务场景

拿到菜单JSON/实体后,可以:

  1. 在后台页面展示当前微信菜单;
  2. 将菜单数据存入数据库,做备份;
  3. 对比本地保存菜单和线上微信菜单是否一致,实现菜单同步功能。

菜单整套接口汇总

  1. 查询菜单:GET /menu/get → 获取菜单JSON
  2. 删除菜单:GET /menu/delete清空全部菜单,不能单独删一个
  3. 创建菜单:POST /menu/create → 提交JSON新建菜单

修改菜单标准流程:查询 → 删除 → 创建。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注