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 相关文章推荐
Email+URL的判断和自动转换函数
Oct 09 PHP
php中变量及部分适用方法
Mar 27 PHP
php 向访客和爬虫显示不同的内容
Nov 09 PHP
php中防止伪造跨站请求的小招式
Sep 02 PHP
php继承的一个应用
Sep 06 PHP
php编写简单的文章发布程序
Jun 18 PHP
使用PHP similar text计算两个字符串相似度
Nov 06 PHP
php使用json_decode后数字对象转换成了科学计数法的解决方法
Feb 20 PHP
PHP 中使用explode()函数切割字符串为数组的示例
May 06 PHP
PHP实现下载远程图片保存到本地的方法
Jun 19 PHP
smarty模板的使用方法实例分析
Sep 18 PHP
phpstudy隐藏index.php的方法
Sep 21 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
phpBB BBcode处理的漏洞
2006/10/09 PHP
php之XML转数组函数的详解
2013/06/07 PHP
PHP获取当前页面完整URL的实现代码
2013/06/10 PHP
php导入导出excel实例
2013/10/25 PHP
PHP函数extension_loaded()用法实例
2015/01/19 PHP
var与Javascript变量隐式声明
2009/09/17 Javascript
JavaScript实现的经典文件树菜单效果
2015/09/08 Javascript
原生JavaScript制作微博发布面板效果
2016/03/11 Javascript
用nodejs的实现原理和搭建服务器(动态)
2016/08/10 NodeJs
jQuery+ajax读取并解析XML文件的方法
2016/09/09 Javascript
js实现点击图片自动提交action的简单方法
2016/10/16 Javascript
解决URL地址中的中文乱码问题的办法
2017/02/10 Javascript
vue-router 学习快速入门
2017/03/01 Javascript
JS模拟超市简易收银台小程序代码解析
2017/08/18 Javascript
通过button将form表单的数据提交到action层的实例
2017/09/08 Javascript
JavaScript解决浮点数计算不准确问题的方法分析
2018/07/09 Javascript
vue实现图片上传预览功能
2019/12/23 Javascript
[57:29]Alliance vs KG 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/17 DOTA
一张图带我们入门Python基础教程
2017/02/05 Python
python 读写中文json的实例详解
2017/10/29 Python
Python实现字典的遍历与排序功能示例
2017/12/23 Python
python简单实现操作Mysql数据库
2018/01/29 Python
Python socket连接中的粘包、精确传输问题实例分析
2020/03/24 Python
Win10用vscode打开anaconda环境中的python出错问题的解决
2020/05/25 Python
Python坐标轴操作及设置代码实例
2020/06/04 Python
如何用python处理excel表格
2020/06/09 Python
基于python实现操作git过程代码解析
2020/07/27 Python
世界上最受欢迎的钓鱼诱饵:Rapala
2019/05/02 全球购物
美国渔具店:FishUSA
2019/08/07 全球购物
Nike俄罗斯官方网站:Nike RU
2021/03/05 全球购物
缴纳养老保险的证明
2014/01/10 职场文书
宝宝周岁宴答谢词
2014/01/26 职场文书
商业融资计划书
2014/04/29 职场文书
2015年街道除四害工作总结
2015/05/15 职场文书
2016年离婚协议书范文
2016/03/18 职场文书
TensorFlow的自动求导原理分析
2021/05/26 Python