【亲测有效】微信公众号设置菜单栏显示,未开启自定义菜单,微信公众平台自定义菜单接口开发

发布于:2024-04-08 ⋅ 阅读:(308) ⋅ 点赞:(0)

微信公众平台开发 微信公众平台开发者 微信公众平台开发模式 服务号 自定义菜单接口API

背景:在开启“服务器配置”后,微信公众号运营人员在微信公众平台设置自定义菜单栏是提示“未开启自定义菜单”

相关链接:如何开启服务器配置 | 实现扫码关注微信公众号系统/网站自动注册登录

问题:运营人员在设置微信公众号设置菜单栏显示,未开启自定义菜单

微信公众号设置菜单栏显示,未开启自定义菜单

解决方案(微信公众平台自定义菜单接口开发):

自定义菜单-创建接口

请求链接

http请求方式:POST(请使用https协议) https://api.weixin.qq.com/cgi-bin/menu/create?access_token=ACCESS_TOKEN

完整代码

第一步:在WeChat类里添加代码
情况一:没有WeChat类情况,如果已有请看情况二

创建WeChat类,完整代码:

<?php

namespace app\api\controller;
use think\Cache;
class WeChatJutuiguanjia
{
   

    protected $appid;
    protected $secret;
    protected $accessToken;
    /***
     * 设置微信公众号appid及secret 
     **/
    function __construct()
    {
   
        $this->appid = "";
        $this->secret = "";
        $this->accessToken = $this->getAccessToken();
    }

    /***
     * 获取access_token
     * token的有效时间为2小时,这里可以做下处理,提高效率不用每次都去获取,
     * 将token存储到缓存中,每2小时更新一下,然后从缓存取即可
     * @return
     **/
    private function getAccessToken()
    {
   
        $access_token  = Cache::get('access_token');
        if(empty($uid)){
   

            $url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=" . $this->appid . "&secret=" . $this->secret;
            $res = json_decode($this->httpRequest($url), true);
            Cache::set('access_token', $res['access_token'],60*59);
            $access_token = $res['access_token'];
        }
        return $access_token;
    }

    /***
     * POST或GET请求
     * @url 请求url
     * @data POST数据
     * @return
     **/
    private function httpRequest($url, $data = "")
    {
   
        $curl = curl_init();
        curl_setopt($curl, CURLOPT_URL, $url);
        curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
        curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);
        if (!empty($data)) {
     //判断是否为POST请求
            curl_setopt($curl, CURLOPT_POST, 1);
            curl_setopt($curl, CURLOPT_POSTFIELDS, $data)

网站公告

今日签到

点亮在社区的每一天
去签到