加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 资源网站 > 资源 > 正文

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

发布时间:2020-12-14 17:06:39 所属栏目:资源 来源:网络整理
导读:主要的原因是再不破坏公众号以前的菜单的基础上增加自定义菜单,主要步骤如下: 1.通过微信提供的微信公众平台接口调试工具获取公众号的所有自定义菜单 网址:https://mp.weixin.qq.com/debug/cgi-bin/apiinfo?t=index 图一 结果如下: ? 图二 需要选择接口


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


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中获取的永久素材,然后添加上的。注:因文采有限,写的可能不是很详细,大家可以联系我。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读