php实现微信公众号创建自定义菜单功能的实例代码


Posted in PHP onJune 11, 2019

目的

创建自定义菜单,实现菜单事件。

首先获取Access_Token

接口:

https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET

我用的是测试号,修改APPID和APPSECRET,然后浏览器访问上面这个Url即可生成Access_Token

然后配置菜单的事件,caidan.php

<?php
header("Content-type: text/html; charset=utf-8");
define("ACCESS_TOKEN", "生成的Access_Token");
//创建菜单
function createMenu($data){
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://api.weixin.qq.com/cgi-bin/menu/create?access_token=".ACCESS_TOKEN);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (compatible; MSIE 5.01; Windows NT 5.0)');
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_AUTOREFERER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$tmpInfo = curl_exec($ch);
if (curl_errno($ch)) {
 return curl_error($ch);
}
curl_close($ch);
return $tmpInfo;
}
//获取菜单
function getMenu(){
return file_get_contents("https://api.weixin.qq.com/cgi-bin/menu/get?access_token=".ACCESS_TOKEN);
}
//删除菜单
function deleteMenu(){
return file_get_contents("https://api.weixin.qq.com/cgi-bin/menu/delete?access_token=".ACCESS_TOKEN);
}
$data = '{
  "button":[
  {
   "type":"click",
   "name":"首页",
   "key":"home"
  },
  {
   "type":"click",
   "name":"简介",
   "key":"introduct"
  },
  {
   "name":"菜单",
   "sub_button":[
   {
    "type":"click",
    "name":"hello word",
    "key":"V1001_HELLO_WORLD"
   },
   {
    "type":"click",
    "name":"赞一下我们",
    "key":"V1001_GOOD"
   }]
  }]
}';
echo createMenu($data);

浏览器访问caidan.php

正确时的返回JSON数据包如下:

{"errcode":0,"errmsg":"ok"}

错误时的返回JSON数据包如下(示例为无效菜单名长度):

{"errcode":40018,"errmsg":"invalid button name size"}

总结

以上所述是小编给大家介绍的php实现微信公众号创建自定义菜单功能的实例代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

PHP 相关文章推荐
php 特殊字符处理函数
Sep 05 PHP
php中$_SERVER[PHP_SELF] 和 $_SERVER[SCRIPT_NAME]之间的区别
Sep 05 PHP
php运行出现Call to undefined function curl_init()的解决方法
Nov 02 PHP
解析如何去掉CodeIgniter URL中的index.php
Jun 25 PHP
php生成图形(Libchart)实例
Nov 06 PHP
PHP的error_reporting错误级别变量对照表
Jul 08 PHP
PHP中使用匿名函数操作数据库的例子
Nov 17 PHP
php实现根据IP地址获取其所在省市的方法
Apr 30 PHP
详解PHP实现定时任务的五种方法
Jul 25 PHP
php使用正则表达式去掉html中的注释方法
Nov 03 PHP
详解php反序列化
Jun 10 PHP
聊聊 PHP 8 新特性 Attributes
Aug 19 PHP
php转换上传word文件为PDF的方法【基于COM组件】
Jun 10 #PHP
php简单计算权重的方法示例【适合抽奖类应用】
Jun 10 #PHP
PHP7实现和CryptoJS的AES加密方式互通示例【AES-128-ECB加密】
Jun 08 #PHP
php使用scandir()函数扫描指定目录下所有文件示例
Jun 08 #PHP
php中目录操作opendir()、readdir()及scandir()用法示例
Jun 08 #PHP
php中字符串和整数比较的操作方法
Jun 06 #PHP
使用PHPWord生成word文档的方法详解
Jun 06 #PHP
You might like
咖啡历史、消费和行业趋势
2021/03/03 咖啡文化
删除无限级目录与文件代码共享
2006/07/12 PHP
PHP中PDO的错误处理
2011/09/04 PHP
PHP mysqli事务操作常用方法分析
2017/07/22 PHP
centos7上编译安装php7以php-fpm方式连接apache
2018/11/08 PHP
PHP通过调用新浪API生成t.cn格式短网址链接的方法详解
2019/02/20 PHP
laravel框架邮箱认证实现方法详解
2019/11/22 PHP
js数组的基本用法及数组根据下标(数值或字符)移除元素
2013/10/20 Javascript
开发中可能会用到的jQuery小技巧
2014/03/07 Javascript
jQuery获得包含margin的outerWidth和outerHeight的方法
2015/03/25 Javascript
jQuery实现表格展开与折叠的方法
2015/05/04 Javascript
JavaScript为事件句柄绑定监听函数实例详解
2015/12/15 Javascript
ros::spin() 和 ros::spinOnce()函数的区别及详解
2016/10/01 Javascript
js实现简单的手风琴效果
2017/02/27 Javascript
AngularJS实现进度条功能示例
2017/07/05 Javascript
推荐10款扩展Web表单的JS插件
2017/12/25 Javascript
vue中的数据绑定原理的实现
2018/07/02 Javascript
TypeScript中的方法重载详解
2019/04/12 Javascript
Node.js HTTP服务器中的文件、图片上传的方法
2019/09/23 Javascript
jQuery实现回到顶部效果
2020/10/19 jQuery
使用Python下载Bing图片(代码)
2013/11/07 Python
python绘图库Matplotlib的安装
2014/07/03 Python
python 实现对数据集的归一化的方法(0-1之间)
2018/07/17 Python
基于python历史天气采集的分析
2019/02/14 Python
python 返回一个列表中第二大的数方法
2019/07/09 Python
numpy.random.shuffle打乱顺序函数的实现
2019/09/10 Python
Django3.0 异步通信初体验(小结)
2019/12/04 Python
英格兰足协官方商店:England Store
2019/07/12 全球购物
自我评价如何写好?
2014/01/05 职场文书
校园绿化美化方案
2014/06/08 职场文书
2014年度安全生产目标管理责任书
2014/07/25 职场文书
乡镇党建工作汇报材料
2014/10/27 职场文书
班主任远程培训研修日志
2015/11/13 职场文书
解决redis批量删除key值的问题
2022/03/23 Redis
angular4实现带搜索的下拉框
2022/03/25 Javascript
配置Kubernetes外网访问集群
2022/03/31 Servers