怎么获得微信公众号(订阅号)自定义菜单接口权限?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎么获得微信公众号(订阅号)自定义菜单接口权限?相关的知识,希望对你有一定的参考价值。

微信公众号认证麻烦吗,我看怎么腾讯微博新浪微博认证也可以?我想要获得自定义菜单接口权限
想要像这样的,我这公众号没认证的。还有编辑模式开发模式只能选一种吗,有啥区别

 1、首先登陆微信公告号管理后台,找到自定义菜单位置!


  2、小知识:公众号自定义菜单可以添加三个主菜单,每个主菜单下面可以再添加5个子菜单。


  在自定义菜单编辑区点击“菜单管理”处的“+”,添加自定义菜单,如下图:


  3、输入菜单名称:不多于4个汉字或8个字母


  4、先把主菜单加好后,再加子菜单,不一定每个主菜单下都要加子菜单,看自己的规划。

  添加子菜单方法:鼠标指向主菜单处,会出现三个按钮,每个按钮的功能看下图,如果是添加子菜单点击下图所示的“+”位置。


  添加好的子菜单,鼠标指向时,同样具有修改和删除按钮。


  5、所有菜单添加好之后,就可以添加动作了,也就是用户点击这些菜单时能做什么,公众平台提供了两种动作类型,一个是“发送消息”,一个是“跳转到网页”。


  这里注意:一旦选择的动作类型不可以再改了,除非删掉菜单重新建。


  下面我们认真学习一下。


  6、当我们选择动作为“发送信息”时,可以添加文字、图片、音频、视频,还可以是已经编辑好的图文消息,很全面吧!如下图:


  7、我选择了已经编辑好的一条图文消息!点击“确定”,保存!这样用户在我的公众号里点击这个菜单的时候就会发送出这条图文消息。


  8、再看类型为“跳转到网页”的按钮怎么加,我们可以添加历史消息链接(怎么找到历史消息的链接参照我这篇教程:【让公众号被关注时回复历史消息列表】),让用户点击菜单后直接指向我的公众号“历史消息”里,看到我所有发过的图文消息,也可以添加自己的微网站链接,这样用户点击菜单后直接跳转到您的官方网站。


  9、小知识:所有添加的菜单(有子菜单的主菜单除外)都要有对应的动作添加,才可以发布,否则会提示发布不成功!


  确认没问题后,记得最后一步“发布”,点击下部的“发布”按钮!


  10、会有发布确认提醒!确定!

  小知识:菜单发布后,不一定立即生效,一般在24小时之内,可以尝试一下先取消关注再重新关注,有时可以立即看到新发布的菜单效果!

参考技术A 你想订什么公众号之间搜索就可以了追问

什么意思

微信公众号开发自定义菜单

前言:

1,目前公众号类型分为两种:服务号和订阅号(服务号主要面向企业、政府和其他组织,而订阅号主要面向媒体和个人)

  区别:只有服务号可以申请自定义菜单;服务号每月只能群发四条消息,而订阅号每天能群发一条消息

2,如果开发者想通过HTTP请求访问公众平台的接口,就必须要有访问凭证,也就是access_token(方法在第二章)

3,菜单数量为3(一级)*5(二级)

正文:

我是发送消息到微信,判定如果是“menu”(随便什么都可以)则触发更新菜单(消息的发送和接收第四章会讲到)

1,对菜单结构的封装  最终提交的json格式菜单数据应该是由对象直接转换得到,而不是在程序代码中拼一大堆json数据

  菜单项的基类(所有一级菜单、二级菜单都共有一个相同的属性,那就是name)

public class Button {  
    private String name;  
  
    public String getName() {  
        return name;  
    }  
  
    public void setName(String name) {  
        this.name = name;  
    }  
}  

  子菜单项的封装(有可能是二级菜单项,也有可能是不含二级菜单的一级菜单)

//click类型
public
class CommonButton extends Button { private String type; private String key; public String getType() { return type; } public void setType(String type) { this.type = type; } public String getKey() { return key; } public void setKey(String key) { this.key = key; } }  
//view类型
public
class ViewButton extends Button { private String type; private String url; public String getType() { return type; } public void setType(String type) { this.type = type; } public String getUrl() { return url; } public void setUrl(String url) { this.url = url; } }

  父菜单项(包含有二级菜单项的一级菜单)

public class ComplexButton extends Button {  
    private Button[] sub_button;  
  
    public Button[] getSub_button() {  
        return sub_button;  
    }  
  
    public void setSub_button(Button[] sub_button) {  
        this.sub_button = sub_button;  
    }  
}  

  整个菜单对象的封装

public class Menu {  
    private Button[] button;  
  
    public Button[] getButton() {  
        return button;  
    }  
  
    public void setButton(Button[] button) {  
        this.button = button;  
    }  
}  

2,生成菜单   主要介绍click和view,其他类型还没接触到

public static String menuManager() {           
    String respContent = "";//返回到微信的消息
    String access_token = WeixinUtil.getAccessToken(Config.fileName, Config.appId(), Config.appSecret());// 调用接口获取access_token

    if (!StringUtils.isEmpty(access_token)) {  
        // 调用接口创建菜单  
        int result = WeixinUtil.createMenu(getMenu(), access_token);  

        // 判断菜单创建结果  
        if (0 == result){               
            respContent = "爱关节网菜单创建成功!";
        }else{
            respContent = "爱关节网菜单创建失败,错误码:" + result; 
        }  
    }  
    
    return respContent;
} 
    //组装菜单数据   
    private static Menu getMenu() {  
        ViewButton btn11 = new ViewButton();
        btn11.setName("测试view类型");  
        btn11.setType("view");  
        btn11.setUrl("https://www.ceshi.com/");  
  
        CommonButton btn12 = new CommonButton();  
        btn12.setName("公交查询");  
        btn12.setType("click");  
        btn12.setKey("12");  
  
        CommonButton btn13 = new CommonButton();  
        btn13.setName("周边搜索");  
        btn13.setType("click");  
        btn13.setKey("13");  
  
        CommonButton btn14 = new CommonButton();  
        btn14.setName("历史上的今天");  
        btn14.setType("click");  
        btn14.setKey("14");  
  
        CommonButton btn21 = new CommonButton();  
        btn21.setName("歌曲点播");  
        btn21.setType("click");  
        btn21.setKey("21");  
  
        CommonButton btn22 = new CommonButton();  
        btn22.setName("经典游戏");  
        btn22.setType("click");  
        btn22.setKey("22");  
  
        CommonButton btn23 = new CommonButton();  
        btn23.setName("美女电台");  
        btn23.setType("click");  
        btn23.setKey("23");  
  
        CommonButton btn24 = new CommonButton();  
        btn24.setName("人脸识别");  
        btn24.setType("click");  
        btn24.setKey("24");  
  
        CommonButton btn25 = new CommonButton();  
        btn25.setName("聊天唠嗑");  
        btn25.setType("click");  
        btn25.setKey("25");  
  
        CommonButton btn31 = new CommonButton();  
        btn31.setName("Q友圈");  
        btn31.setType("click");  
        btn31.setKey("31");  
  
        CommonButton btn32 = new CommonButton();  
        btn32.setName("电影排行榜");  
        btn32.setType("click");  
        btn32.setKey("32");  
  
        CommonButton btn33 = new CommonButton();  
        btn33.setName("幽默笑话");  
        btn33.setType("click");  
        btn33.setKey("33");  
  
        ComplexButton mainBtn1 = new ComplexButton();  
        mainBtn1.setName("生活助手");  
        mainBtn1.setSub_button(new Button[] { btn11, btn12, btn13, btn14 });  
  
        ComplexButton mainBtn2 = new ComplexButton();  
        mainBtn2.setName("休闲驿站");  
        mainBtn2.setSub_button(new Button[] { btn21, btn22, btn23, btn24, btn25 });  
  
        ComplexButton mainBtn3 = new ComplexButton();  
        mainBtn3.setName("更多体验");  
        mainBtn3.setSub_button(new Button[] { btn31, btn32, btn33 });  
  
        /** 
         * 这个公众号目前的菜单结构,每个一级菜单都有二级菜单项 
         *  
         * 在某个一级菜单下没有二级菜单的情况,menu该如何定义呢?
         * 比如,第三个一级菜单项不是“更多体验”,而直接是“幽默笑话”,那么menu应该这样定义 
         * menu.setButton(new Button[] { mainBtn1, mainBtn2, btn33 }); 
         */  
        Menu menu = new Menu();  
        menu.setButton(new Button[] { mainBtn1, mainBtn2, mainBtn3 });  
  
        return menu;  
    }  
}  

 



以上是关于怎么获得微信公众号(订阅号)自定义菜单接口权限?的主要内容,如果未能解决你的问题,请参考以下文章

微信公众号里面的自定义菜单限制字数不超过8个汉字或16个字母

微信公众平台开发教程第1篇-新手解惑

微信公众号开发自定义菜单

微信小程序,weixin,微信商户后台怎么开通企业付款到用户

php微信开发实现自定义菜单功能

微信公众平台开发教程新手解惑40则