目的

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

首先获取Access_Token

接口:

【腾讯云】云产品限时秒杀,爆款1核2G云服务器,首年99元

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

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

然后配置菜单的事件,caidan.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"}

作者:TANKING

微信:face6009

网站:https://www.likeyunba.com

php 微信公众号自定义菜单栏,php实现微信公众号创建自定义菜单相关推荐

  1. 绝地求生刺激战场自定义服务器,绝地求生刺激战场怎么创建自定义房间 方法介绍...

    在玩端游的时候肯定有很多小伙伴参与自定义模式,很多时候主播都会创建好玩的模式,那么手游怎么创建呢?来随小编看看绝地求生刺激战场怎么创建自定义房间吧. 创房所需条件 权限也就是资格!只有一部分的玩家可以 ...

  2. android datepicker 自定义,android – 如何使用两个datepicker创建自定义对话框?

    最好先阅读 Dialogs和 Pickers. 至于实现,您可以有两个按钮:一个用于显示开始日期的日期选择器,另一个用于显示结束日期. 编辑:如果你真的想在1个对话框中显示2个日期选择器,这里有一个如 ...

  3. 微信菜单 html页面添加的,微信公众号添加菜单栏外部链接(微信添加外部链接方法)...

    很多微信公号新手用户想通过自己的公众号来推广其他的连接地址,对于认证用户来说可以直接添加,但对于未认证的新手用户来说不知道该怎么做,那么现在就来告诉大家添加外部链接的方法吧. 方法如下: 1.首先打开 ...

  4. Vue创建自定义组件,并详解整个创建自定义组件的过程

    在vue开发项目中想自定义一个自己的组件,于是在网上找一下教程,教程基本的都一样,但是都不是很详细,我就按照网上的教程从头到尾学习了一遍,文章中如果有不正确的,还请各位大佬指出,共同进步. vue自定 ...

  5. Android实现自定义相册,在Android Gallery App中创建自定义相册

    您可以使用这种方式在Gallery应用中创建相册.该名称显示为"app images". String path = Environment.getExternalStorageD ...

  6. (转)C#开发微信门户及应用(1)--开始使用微信接口

    http://www.cnblogs.com/wuhuacong/p/3613826.html 微信应用如火如荼,很多公司都希望搭上信息快车,这个是一个商机,也是一个技术的方向,因此,有空研究下.学习 ...

  7. C#开发微信门户及应用(1)--开始使用微信接口

    C#开发微信门户及应用(1)--开始使用微信接口 微信应用如火如荼,很多公司都希望搭上信息快车,这个是一个商机,也是一个技术的方向,因此,有空研究下.学习下微信的相关开发,也就成为日常计划的重要事情之 ...

  8. 为Qt Designer创建自定义Widgets小部件

    为Qt Designer创建自定义Widgets小部件 为Qt Designer创建自定义Widgets小部件 入门 在注释domXml()功能 插件要求 创建行为良好的小部件 编译和安装插件 一个简 ...

  9. WPF 创建自定义面板

    前面两个章节分别介绍了两个自定义控件:自定义的ColorPicker和FlipPanel控件.接下来介绍派生自定义面板以及构建自定义绘图控件. 创建自定义面板是一种特殊但较常见的自定义控件开发子集.前 ...

  10. JavaScript学习笔记:创建自定义对象

    文章目录 一.利用构造函数模式创建自定义对象 二.采用原型模式创建自定义对象 三.采用混合模式创建自定义对象 四.采用动态原型模式创建自定义对象 一.利用构造函数模式创建自定义对象 使用构造函数可以创 ...

最新文章

  1. 了解ViewConfiguration
  2. 小伙一本正经用石头打造CPU,号称99秒“解决”芯片危机
  3. 我失败的阿里程序员生涯
  4. visio篇章--1
  5. 程序员羽化之路--假如需要一百万个对象
  6. js原生后代选择器_CSS 后代选择器
  7. java程序员面试怎么难为面试官_Java程序员面试这些多线程问题你知道吗?
  8. js上拉加载ajax数据,原生ajax写的上拉加载实例
  9. LINUX中使用fdisk对SD卡磁盘进行格式化并重新分区
  10. java音频文件怎么打开_java 怎么读取音乐文件
  11. python 报错traceback-python-traceback捕获并打印异常
  12. 用c语言合并两个有序单链表,c++ 如何合并两个有序链表
  13. 刨根究底字符编码之二——关键术语解释(下)
  14. 3个阶段 项目征名_《传奇3G》新版本 征名活动邀您参与
  15. 求以下表达式的值,写出您想到的一种或几种实现方法: 1-2+3-4+……+m
  16. libnet、libnids、libpcap轻松搭建Linux网络入侵检测系统
  17. IIS HTTP 错误 404.3 - Not Found 由于扩展配置问题而无法提供您请求的页面。如果该页面是脚本,请添加处理程序。如果应下载文件,请添加 MIME 映射。
  18. NiFi 的使用心得
  19. CDA数据分析师携手万宝盛华开启人才培训新篇章
  20. 升级云服务器的python3,导致宝塔面板打不开

热门文章

  1. python怎么用sin_python怎么打sin
  2. 上海数据交易中心交易系统开放
  3. 三年级计算机 键盘指法 教案,三年级下册信息技术教案-第06课键盘指法练习浙江摄影版(新)...
  4. 随机子空间(RSM)
  5. Dropping Balls
  6. Repeated DNA Sequences
  7. Spark实用议题系列(02)--- DataFrame的各种join总结和实例
  8. 这几个专业考上研再考公务员更有优势!
  9. 《软件测试》第九章 兼容性测试
  10. java并发编程——创建线程之Thread 和 Runnable