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安装攻略:常见问题解答(二)
Oct 09 PHP
优化PHP代码的53条建议
Mar 27 PHP
php下关于中英数字混排的字符串分割问题
Apr 06 PHP
PHP中使用CURL模拟登录并获取数据实例
Jul 01 PHP
PHP获取当前所在目录位置的方法
Nov 26 PHP
header与缓冲区之间的深层次分析
Jul 30 PHP
ThinkPHP 整合Bootstrap Ajax分页样式
Dec 23 PHP
php简单构造json多维数组的方法示例
Jun 08 PHP
PHP操作MySQL中BLOB字段的方法示例【存储文本与图片】
Sep 15 PHP
PHP设计模式之单例模式原理与实现方法分析
Apr 25 PHP
PHP钩子实现方法解析
May 21 PHP
PHP 观察者模式深入理解与应用分析
Sep 25 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
探讨多键值cookie(php中cookie存取数组)的详解
2013/06/06 PHP
关于php循环跳出的问题
2013/07/01 PHP
PHP实现将textarea的值根据回车换行拆分至数组
2015/06/10 PHP
PHP中的表达式简述
2016/05/29 PHP
PHP 匿名函数与注意事项详细介绍
2016/11/26 PHP
jQuery EasyUI API 中文文档 - NumberBox数字框
2011/10/13 Javascript
JavaScript将数据转换成整数的方法
2014/01/04 Javascript
jQuery实现简单的列表式导航菜单效果代码
2015/08/31 Javascript
js控住DOM实现发布微博效果
2016/08/30 Javascript
JS实现iframe自适应高度的方法示例
2017/01/07 Javascript
JS请求servlet功能示例
2017/06/01 Javascript
原生JS实现列表子元素顺序反转的方法分析
2018/07/02 Javascript
如何在vue里添加好看的lottie动画
2018/08/02 Javascript
详解如何webpack使用DllPlugin
2018/09/30 Javascript
vant-ui AddressEdit地址编辑和van-area的用法说明
2020/11/03 Javascript
详解datagrid使用方法(重要)
2020/11/06 Javascript
Node.js中的异步生成器与异步迭代详解
2021/01/31 Javascript
将Python的Django框架与认证系统整合的方法
2015/07/24 Python
Python创建对称矩阵的方法示例【基于numpy模块】
2017/10/12 Python
Python操作Mongodb数据库的方法小结
2019/09/10 Python
Django 实现对已存在的model进行更改
2020/03/28 Python
python3 配置logging日志类的操作
2020/04/08 Python
Python实现Canny及Hough算法代码实例解析
2020/08/06 Python
举例详解CSS3中的Transition
2015/07/15 HTML / CSS
瑞士国际航空官网:SWISS
2016/07/21 全球购物
奢华时尚的独特视角:La Garçonne
2018/06/07 全球购物
三星新西兰官网:Samsung新西兰
2019/03/05 全球购物
软件测试题目
2013/02/27 面试题
医院护士专业个人的求职信
2013/12/09 职场文书
英文简历中的自我评价用语
2013/12/09 职场文书
数字化校园建设方案
2014/05/03 职场文书
领导干部四风问题自我剖析材料
2014/09/25 职场文书
2014年审计工作总结
2014/11/17 职场文书
2015年法务工作总结范文
2015/05/23 职场文书
初中历史教学反思
2016/02/19 职场文书
PHP基本语法
2021/03/31 PHP