通过微信公众号API复制公众号自定义菜单同时增加子菜单方法


主要的原因是再不破坏公众号以前的菜单的基础上增加自定义菜单,主要步骤如下:


1.通过微信提供的微信公众平台接口调试工具获取公众号的所有自定义菜单


  网址:https://mp.weixin.qq.com/debug/cgi-bin/apiinfo?t=index

  

分享图片

                          图一          

  结果如下:

   

分享图片

 

                          图二


  需要选择接口类型为定义菜单,然后输入公众号的access_token这个怎么获取请自行百度吧。

2.获取公众号自定义菜单

         一般返回的都是json数据,其中主要针对view和click两中类型:
    可以参考API文档,看具体描述:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421141014
    因为我们通过微信公众平台接口调试工具只能获取view和click类型的其它的类型我们无法获取,比如图二中返回的信息第二个菜单没有显示信息:图片、图文这些都获取不到,那怎么办呢?
    我们可以另一个自定义菜单API(获取自定义菜单配置接口)获取所有信息:
      网址:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1434698695
      然后我写了一个简单的程序直接获取,如下:

      

/**
 * @Author: lxl
 * @describe
 * @Date: 2019/1/8 17:37
 * @Version 1.0
 */
public class ce {

    public static void main(String[] args){
        //获取获取自定义菜单配置接口
//        String url ="https://api.weixin.qq.com/cgi-bin/get_current_selfmenu_info?access_token=" +
//                "17_5dzl2i-Xdnr_i-o4nOJLu2wCgzL46k0hgdHqHYa76yzStcX1BiTtdnWVWxXa4sfQfomLkEpoC4B1fq0FkbynayLnaeVlAFT1PV0u5qJK_v_iqIKsng_Pj7LmZVEznRrz4jMD_Z5jZj-bnvyHNZJeAJDTFP";
//        String userInfoResultStr = HttpUtil.doGetSSL(url);
//        System.out.println(userInfoResultStr);

        //获取永久素材
        String urlccc="https://api.weixin.qq.com/cgi-bin/material/batchget_material?access_token=" +
                "17_5dzl2i-Xdnr_i-o4nOJLu2wCgzL46k0hgdHqHYa76yzStcX1BiTtdnWVWxXa4sfQfomLkEpoC4B1fq0FkbynayLnaeVlAFT1PV0u5qJK_v_iqIKsng_Pj7LmZVEznRrz4jMD_Z5jZj-bnvyHNZJeAJDTFP";

        JSONObject jsonObject = new JSONObject();
        jsonObject.put("type","news"); //图片(image)、视频(video)、语音 (voice)、图文(news)
        jsonObject.put("offset",0);
        jsonObject.put("count",20);
        String result = HttpUtil.doPost(urlccc,jsonObject.toJSONString());
        System.out.println(result);
    }
}

//我们这里有两个接口 userInfoResultStr是可以获取所有的菜单配置,可以找到所有的信息,我们通过信息就知道了
//result是得到所有的永久素材,图二中的信息我们获取不到,不过我可以知道它是一个永久素材,所以通过此接口获取公众号所有的永久素材的meida_id。
 

 3.创建自定义菜单

 

分享图片

                        图三

其中body中数据说明:

{
                "button":[
                    {
                        "name":"据常优","sub_button":[
                            {
                                "type":"view","name":"子菜单名称","url":"http://baidu.com","sub_button":[

                                ]
                            },{
                                "type":"click","name":"我的客服","key":"MY_NEWS"
                            }
                        ]
                    },{
                        "name":"咨询","sub_button":[
                            {
                                "type":"click","name":"客服测试","key":"Customer_Service_Click"
                            },{
                               "type": "media_id","name": "图片","media_id": "2eq5gndU2iY0gygbpOfxb238Jaypw-jJfBcUTK5awEg"
                            }
                        ]
                    }        
                ]
            }

说明:

据常优:是我们的一级菜单,点击会弹出子菜单"子菜单名称"、"我的客服",其中"我的客服"就是我新添加的菜单。咨询:是我们的一级菜单,点击会弹出子菜单"客服测试"、"图片",其中"图片"就是通过2中获取的永久素材,然后添加上的。注:因文采有限,写的可能不是很详细,大家可以联系我。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


网页授权获取用户信息的方法
报错config:invalid signature的解决方案
微信开发百思不得姐实战教程
详解微信开发input输入框
教你libco是如何支撑巨大数据信息量的
微信二次开发之文本消息请求与发送
微信开发H5轻游戏
scroll-view完成列表页的方法详解
Java微信开发之自定义菜单的创建
微信开发之input控件的实例详解
微信开发Emoji表情的实例教程
微信开发中详解textarea的使用方法
微信开发中使元素占满全屏的方法介绍
微信开发之数据访问的方法详解
微信二次开发之各类型消息封装
微信开发之数据库操作
如何获取微信好友的地理位置信息
分享3款微信开发开源框架
微信开发之获取服务器IP
微信开发之公交换乘功能代码详解