• 微信公众平台自定义菜单接口API指南


    微信公众平台开发模式自定义菜单接口API指南

    简介

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

    click(点击事件):

    用户点击click类型按钮后,微信服务器会通过消息接口(event类型)推送点击事件给开发者,并且带上按钮中开发者填写的key值,开发者可以通过自定义的key值进行消息回复

    创建自定义菜单后,由于微信客户端缓存,需要24小时微信客户端才会展现出来。建议测试时可以尝试取消关注公众账号后,再次关注,则可以看到创建后的效果。

    菜单创建

    接口说明

    通过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 按钮数组,按钮个数应为1~3个
    sub_button 子按钮数组,按钮个数应为1~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"}
    

    统一返回码说明

     

    请先确保公众账号已经拥有接口调用权限。

    默认每个公众帐号都不能超过下面的频率限制。 当超出调用接口频率限制,调用对应接口将会收到如下错误信息:

    {"errcode":45009,"errmsg":"api freq out of limit"}
    

    接口调用频率限制

    接口名称频率限制
    获取凭证接口 200(次/天)
    自定义菜单创建接口 100(次/天)
    自定义菜单查询接口 1000(次/天)
    自定义菜单删除接口 100(次/天)

    返回码说明

    返回码说明
    -1 系统繁忙
    0 请求成功
    40001 验证失败
    40002 不合法的凭证类型
    40003 不合法的OpenID
    40004 不合法的媒体文件类型
    40005 不合法的文件类型
    40006 不合法的文件大小
    40007 不合法的媒体文件id
    40008 不合法的消息类型
    40009 不合法的图片文件大小
    40010 不合法的语音文件大小
    40011 不合法的视频文件大小
    40012 不合法的缩略图文件大小
    40013 不合法的APPID
    40014 不合法的access_token
    40014 不合法的access_token
    40015 不合法的菜单类型
    40016 不合法的按钮个数
    40017 不合法的按钮个数
    40018 不合法的按钮名字长度
    40019 不合法的按钮KEY长度
    40020 不合法的按钮URL长度
    40021 不合法的菜单版本号
    40022 不合法的子菜单级数
    40023 不合法的子菜单按钮个数
    40024 不合法的子菜单按钮类型
    40025 不合法的子菜单按钮名字长度
    40026 不合法的子菜单按钮KEY长度
    40027 不合法的子菜单按钮URL长度
    40028 不合法的自定义菜单使用用户
    41001 缺少access_token参数
    41002 缺少appid参数
    41003 缺少refresh_token参数
    41004 缺少secret参数
    41005 缺少多媒体文件数据
    41006 缺少media_id参数
    41007 缺少子菜单数据
    42001 access_token超时
    43001 需要GET请求
    43002 需要POST请求
    43003 需要HTTPS请求
    44001 多媒体文件为空
    44002 POST的数据包为空
    44003 图文消息内容为空
    45001 多媒体文件大小超过限制
    45002 消息内容超过限制
    45003 标题字段超过限制
    45004 描述字段超过限制
    45005 链接字段超过限制
    45006 图片链接字段超过限制
    45007 语音播放时间超过限制
    45008 图文消息超过限制
    45009 接口调用超过限制
    45010 创建菜单个数超过限制
    46001 不存在媒体数据
    46002 不存在的菜单版本
    46003 不存在的菜单数据
    47001 解析JSON/XML内容错误

    源代码:

    微信公众平台消息接口开发(9)自定义菜单

    欢迎关注方倍工作室微信,了解我们及行业的最新动态

  • 相关阅读:
    【转】理清基本的git(github)流程
    GIT CHEAT SHEET
    failed to push some refs to 'git@github.com:*/learngit.git'
    catch(…) vs catch(CException *)?
    char[]与TCHAR[]互相转换引发的一个问题!
    关于 AfxSocketInit()
    href="#"与href="javascript:void(0)"的区别
    Camera帧率和AE的关系(转)
    详细的摄像头模组工作原理!!!(转)
    高清摄像头MIPI接口与ARM处理器的连接(转)
  • 原文地址:https://www.cnblogs.com/pondbay/p/3486474.html
Copyright © 2020-2023  润新知