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 相关文章推荐
echo, print, printf 和 sprintf 区别
Dec 06 PHP
用PHP读取RSS feed的代码
Aug 01 PHP
PHP的一个基础知识 表单提交
Jul 04 PHP
PHP中的错误处理、异常处理机制分析
May 07 PHP
10个实用的PHP正则表达式汇总
Oct 23 PHP
仿dedecms下拉分页样式修改的thinkphp分页类实例
Oct 30 PHP
php实现字符串首字母转换成大写的方法
Mar 17 PHP
php中请求url的五种方法总结
Jul 13 PHP
PHP+Ajax实现的博客文章添加类别功能示例
Mar 29 PHP
Swoole实现异步投递task任务案例详解
Apr 02 PHP
PHP+Apache实现二级域名之间共享cookie的方法
Jul 24 PHP
Laravel如何实现自动加载类
Oct 14 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
基于ThinkPHP5.0实现图片上传插件
2017/09/25 PHP
PHP children()函数讲解
2019/02/03 PHP
Thinkphp 3.2框架使用Redis的方法详解
2019/10/24 PHP
php+ajax实现文件切割上传功能示例
2020/03/03 PHP
Prototype中dom对象方法汇总
2008/09/17 Javascript
html中的input标签的checked属性jquery判断代码
2012/09/19 Javascript
javascript表单验证 - Parsley.js使用和配置
2013/01/25 Javascript
jquery的clone方法应用于textarea和select的bug修复
2014/06/26 Javascript
浅谈Javascript中的Function与Object
2015/01/26 Javascript
JavaScript对表格或元素按文本,数字或日期排序的方法
2015/05/26 Javascript
Javascript函数的参数
2015/07/16 Javascript
全面了解javascript三元运算符
2016/06/27 Javascript
JS文件上传神器bootstrap fileinput详解
2021/01/28 Javascript
VUE Error: getaddrinfo ENOTFOUND localhost
2018/05/03 Javascript
ES6 对象的新功能与解构赋值介绍
2019/02/05 Javascript
使用Vue-cli3.0创建的项目 如何发布npm包
2019/10/10 Javascript
python通过urllib2获取带有中文参数url内容的方法
2015/03/13 Python
详解Python中用于计算指数的exp()方法
2015/05/14 Python
python实现mysql的读写分离及负载均衡
2018/02/04 Python
Python可变参数*args和**kwargs用法实例小结
2018/04/27 Python
python数据批量写入ScrolledText的优化方法
2018/10/11 Python
Python 单元测试(unittest)的使用小结
2018/11/14 Python
Python完成毫秒级抢淘宝大单功能
2019/06/06 Python
Django框架创建项目的方法入门教程
2019/11/04 Python
wxPython实现列表增删改查功能
2019/11/19 Python
python修改linux中文件(文件夹)的权限属性操作
2020/03/05 Python
美国婚礼装饰和活动用品批发供应商:Event Decor Direct
2018/10/12 全球购物
夜大自我鉴定
2013/10/31 职场文书
工商管理毕业生推荐信
2013/12/24 职场文书
影子教师研修方案
2014/06/14 职场文书
2015年市场部工作总结
2015/04/30 职场文书
毕业生政审意见范文
2015/06/04 职场文书
2016年社区六一儿童节活动总结
2016/04/06 职场文书
C站最全Python标准库总结,你想要的都在这里
2021/07/03 Python
Jedis操作Redis实现模拟验证码发送功能
2021/09/25 Redis
详解Mysq MVCC多版本的并发控制
2022/04/29 MySQL