微信公众平台自定义菜单接口开发
- 问题:运营人员在设置微信公众号设置菜单栏显示,未开启自定义菜单
- 解决方案(微信公众平台自定义菜单接口开发):
-
- 自定义菜单-创建接口
-
- 请求链接
- 完整代码
-
- 第一步:在WeChat类里添加代码
-
- 情况一:没有WeChat类情况,如果已有请看情况二
- 情况二:已有WeChat类情况
- 第二步:在WeChatEvent类中添加代码
-
- 情况一:没有WeChatEvent类情况,如果已有请看情况二
- 情况二:已有WeChatEvent类情况
- 第三步:调用设置自定义菜单接口并传值(带常见三种菜单栏消息类型)
-
- 更多类型按钮
- 自定义菜单-查询接口
-
- 请求链接
- 完整代码
-
- 第一步:在WeChat类中
- 第二步:
- 自定义菜单-删除接口
-
- 请求链接
- 完整代码
-
- 第一步:在WeChat类中
- 第二步:
微信公众平台开发 微信公众平台开发者 微信公众平台开发模式 服务号 自定义菜单接口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)