微信公众号开发(三)设置底部菜单

简介: 填写access_token值,关于如何获取accesstoken值,请参见《微信公众号开发(二)微信公众号的access_token》最后,将想要设置菜单的json写入body中。

设置微信公众号的菜单。

其实就是传一个json给微信的服务器就可以了。比较简单。但是一定要注意json的格式一定要合规,否则会设置失败。

具体步骤:

1:登录微信公众号,点击开发者工具菜单

image.png

 2:点击在线接口调试工具

image.png

 3:选择接口类型:如下图,我选择的是自定义菜单

填写access_token值,关于如何获取accesstoken值,请参见《微信公众号开发(二)微信公众号的access_token》

最后,将想要设置菜单的json写入body中。

点击检查问题

image.png

4:我这里放一个body中填写的json的实例(其中包含了打开菜单跳转小程序的案例):

css

复制代码

{
                    "button": [
                        {
                        "name": "资源下载",
                        "sub_button": [
                            {
                            "type": "view",
                            "name": "小游戏",
                            "url": "https://www.xxxxx.net/index.html",
                            "sub_button": []
                            },
                            {
                            "type": "view",
                            "name": "关于我们",
                            "url": "http://www.xxxxx.net/",
                            "sub_button": []
                            },
                            {
                            "type": "view",
                            "name": "宣传资料",
                            "url": "https://www.xxxxx.net/xuanchuanzhiyuan.html",
                            "sub_button": []
                            },
                            {
                            "type": "view",
                            "name": "食品检测下载",
                            "url": "https://www.xxxxx.net/fa0.html",
                            "sub_button": []
                            },
                            {
                            "type": "view",
                            "name": "Mlabs下载",
                            "url": "https://www.xxxxx.net/chemlab.html",
                            "sub_button": []
                            }
                        ]
                        },
                        {
                        "name": "教学资源",
                        "sub_button": [
                            {
                            "type": "view",
                            "name": "开发者",
                            "url": "https://www.xxxxx.net/LoginDev",
                            "sub_button": []
                            },
                            {
                            "type": "view",
                            "name": "在线测试",
                            "url": "https://www.xxxxx.net/enterExam/1460",
                            "sub_button": []
                            },
                            {
                            "type": "view",
                            "name": "虚拟实验",
                            "url": "https://www.xxxxx.net/toLabExp/",
                            "sub_button": []
                            },
                            {
                            "type": "view",
                            "name": "虚拟项目",
                            "url": "https://www.xxxxx.net/VirtualProject.html",
                            "sub_button": []
                            },
                            {
                            "type": "view",
                            "name": "开放课程",
                            "url": "https://www.xxxxx.net/index.php/openLogin/",
                            "sub_button": []
                            }
                        ]
                        },
                        {
                        "name": "系统平台",
                        "sub_button": [
                            {
                            "type": "view",
                            "name": "中心管理",
                            "url": "https://www.xxxxx.net/loginCenterSys",
                            "sub_button": []
                            },
                            {
                            "type": "miniprogram",
                            "name": "moolsnet小程序",
                            "url": "https://www.xxxxx.net/",
                            "sub_button": [],
                            "appid": "你的小程序appid",
                            "pagepath": "pages/index/index"
                            },
                            {
                            "type": "miniprogram",
                            "name": "学生系统",
                            "url": "https://www.xxxxxx.net/",
                            "sub_button": [],
                            "appid": "你的小程序appid",
                            "pagepath": "pages/index/index"
                            },
                            {
                            "type": "view",
                            "name": "教师系统",
                            "url": "https://www.mools.net/",
                            "sub_button": []
                            }
                        ]
                        }
                    ]
                    }

大概就是这样,这个json一定要符合微信的格式,不然是会报错的。

5:具体实现代码:

php

复制代码

/**
     * @name: 获取微信access_token
     * @desc: 描述
     * @author: camellia
     * @date: 20211127
     * @param:  data    type    description
     * @return: data    type    description
     */
    public function getAccessToken()
    {
        $url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=" . WX_APPID . "&secret=" . WX_SECRET;
        $info  = file_get_contents($url);
        // 解析完成,这是一个对象
        $obj = json_decode($info);
        $access_token = $obj->access_token;
        return $access_token;
    }
/**
     * @name: 设置微信自定义菜单
     * @desc: 描述
     * @author: camellia
     * @date: 20211127
     * @param:  data    type    description
     * @return: data    type    description
     */
    public function setCaiDan()
    {
        $data = '上方的json,这里不重复写了。';
        // 设置微信自定义菜单
        $url = "https://api.weixin.qq.com/cgi-bin/menu/create?access_token=".$this->access_token();
        $output = $this->curlPost($url, $data);
        echo $output;
    }
    /**
     * @name curl_post公共请求方法
     * @author camellia
     * @date 20220630
     * @email: guanchao_gc@qq.com
     * @param $url 请求连接
     * @param $data 请求参数
     */
    public function curlPost($url, $data)
    {
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
        // POST数据
        curl_setopt($ch, CURLOPT_POST, 1);
        // 把post的变量加上
        curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
        $output = curl_exec($ch);
        curl_close($ch);
        return $output;
    }

上边的代码直接可以使用(将你的appid及appscert更换一下)。

有好的建议,请在下方输入你的评论。

欢迎访问个人博客 guanchao.site

欢迎访问我的小程序:打开微信->发现->小程序->搜索“时间里的”

目录
相关文章
|
3月前
|
小程序
Taro@3.x+Vue@3.x+TS开发微信小程序,设置转发分享
本文介绍了Taro中`useShareAppMessage`的使用方法,需在页面配置`enableShareAppMessage: true`并重新编译。
123 0
Taro@3.x+Vue@3.x+TS开发微信小程序,设置转发分享
|
3月前
|
Linux 网络安全 API
企业微信自定义应用 企业可信IP配置 企业可信ip怎么设置
企业微信自定义应用 企业可信IP配置 企业可信ip怎么设置
|
3月前
|
小程序
uni-app——微信小程序设置全局分享
uni-app——微信小程序设置全局分享
184 0
|
3月前
|
缓存 JavaScript 前端开发
微信 JS-SDK Demo “分享信息设置” API 及数字签名生成方法(NodeJS版本)
微信 JS-SDK Demo “分享信息设置” API 及数字签名生成方法(NodeJS版本)更新时间(2020-10-29)
|
6月前
|
开发者
微信公众平台开发基本配置
微信公众平台开发基本配置
169 0
|
4月前
|
小程序
【微信小程序】英文字母不换行问题 flex布局字符超出宽度折行问题:设置了word-break: break-all;和flex: 1;冲突flex不生效问题
【微信小程序】英文字母不换行问题 flex布局字符超出宽度折行问题:设置了word-break: break-all;和flex: 1;冲突flex不生效问题
132 1
|
5月前
|
小程序
【干货】微信小程序如何设置背景图片
【干货】微信小程序如何设置背景图片
|
6月前
|
小程序 JSON 数据格式
【微信小程序】之如何创建底部菜单?tabBar、mp-tabbar
【微信小程序】之如何创建底部菜单?tabBar、mp-tabbar
【微信小程序】之如何创建底部菜单?tabBar、mp-tabbar
|
4月前
|
XML 关系型数据库 MySQL
支付系统----微信支付19---集成MyBatis-plus,数据库驱动对应的依赖版本设置问题,5没版本没有cj这个依赖,mysql驱动默认的是版本8,这里是一个父类,数据库都有,写个父类,继承就行
支付系统----微信支付19---集成MyBatis-plus,数据库驱动对应的依赖版本设置问题,5没版本没有cj这个依赖,mysql驱动默认的是版本8,这里是一个父类,数据库都有,写个父类,继承就行
|
4月前
|
小程序 JavaScript 前端开发
【微信小程序-原生开发】实用教程06-轮播图、分类页签 tab 、成员列表(含Tdesign升级,切换调试基础库,设置全局样式,配置组件按需注入,添加图片素材,wx:for,生命周期 onLoad)
【微信小程序-原生开发】实用教程06-轮播图、分类页签 tab 、成员列表(含Tdesign升级,切换调试基础库,设置全局样式,配置组件按需注入,添加图片素材,wx:for,生命周期 onLoad)
145 0