PHP实现创建微信自定义菜单的方法示例


Posted in PHP onJuly 14, 2017

本文实例讲述了PHP实现创建微信自定义菜单的方法。分享给大家供大家参考,具体如下:

在使用通用接口前,你需要做以下两步工作:

1.拥有一个微信公众账号,并获取到appidappsecret(在公众平台申请内测资格,审核通过后可获得)

2.通过获取凭证接口获取到access_token

注意:

access_token是第三方访问api资源的票据;

access_token对应于公众号是全局唯一的票据,重复获取将导致上次获取的access_token失效。

访问下面这个地址(注意替换你的appid和secret):

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

然后在浏览器能看到一下返回信息:

{"access_token":"这里就是你的access_token","expires_in":7200}

创建自定义菜单:

<?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);
//echo getMenu();
//echo deleteMenu();

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
关于PHP中的Class的几点个人看法
Oct 09 PHP
一个程序下载的管理程序(二)
Oct 09 PHP
PHP入门速成教程
Mar 19 PHP
php排序算法(冒泡排序,快速排序)
Oct 09 PHP
PHP写的加密函数,支持私人密钥(详细介绍)
Jun 09 PHP
ThinkPHP自动转义存储富文本编辑器内容导致读取出错的解决方法
Aug 08 PHP
学习php设计模式 php实现访问者模式(Visitor)
Dec 07 PHP
PHP Ajax JavaScript Json获取天气信息实现代码
Aug 17 PHP
PHP文件系统管理(实例讲解)
Sep 19 PHP
php图片合成方法(多张图片合成一张)
Nov 25 PHP
PHP日志LOG类定义与用法示例
Sep 06 PHP
php微信公众号开发之校园图书馆
Oct 20 PHP
PHP微信公众号开发之微信红包实现方法分析
Jul 14 #PHP
PHP机器学习库php-ml的简单测试和使用方法
Jul 14 #PHP
thinkphp3.2嵌入百度编辑器ueditor的实例代码
Jul 13 #PHP
PHP微信PC二维码登陆的实现思路
Jul 13 #PHP
PHP基于socket实现客户端和服务端通讯功能
Jul 13 #PHP
php中请求url的五种方法总结
Jul 13 #PHP
Laravel 5.4重新登录实现跳转到登录前页面的原理和方法
Jul 13 #PHP
You might like
Terran兵种对照表
2020/03/14 星际争霸
提升PHP执行速度全攻略(上)
2006/10/09 PHP
PHP代码维护,重构变困难的4种原因分析
2016/01/25 PHP
PHP并发场景的三种解决方案代码实例
2021/02/27 PHP
JS模拟多线程
2007/02/07 Javascript
Extjs TriggerField在弹出窗口显示不出问题的解决方法
2010/01/08 Javascript
用Javascript实现Sleep暂停功能代码
2010/09/03 Javascript
浅析js封装和作用域
2013/07/09 Javascript
JS与C#编码解码
2013/12/03 Javascript
JS实现图片高亮展示效果实例
2015/11/24 Javascript
VUE axios上传图片到七牛的实例代码
2017/07/28 Javascript
详解基于vue-router的动态权限控制实现方案
2017/09/28 Javascript
微信小程序之裁剪图片成圆形的实现代码
2018/10/11 Javascript
基于element-ui组件手动实现单选和上传功能
2018/12/06 Javascript
了解Javascript中函数作为对象的魅力
2019/06/19 Javascript
遍历python字典几种方法总结(推荐)
2016/09/11 Python
Python图像处理之简单画板实现方法示例
2018/08/30 Python
浅谈django三种缓存模式的使用及注意点
2018/09/30 Python
Pycharm 设置默认头的图文教程
2019/01/17 Python
python实现低通滤波器代码
2020/02/26 Python
Python闭包及装饰器运行原理解析
2020/06/17 Python
python时间序列数据转为timestamp格式的方法
2020/08/03 Python
Python三维绘图之Matplotlib库的使用方法
2020/09/20 Python
华硕新加坡官方网上商店:ASUS Singapore
2020/07/09 全球购物
师范生自荐信
2013/10/27 职场文书
爱情寄语大全
2014/04/09 职场文书
职员竞岗演讲稿
2014/05/14 职场文书
广场舞大赛策划方案
2014/05/31 职场文书
母亲节寄语大全
2015/02/27 职场文书
大专护理专业自荐信
2015/03/25 职场文书
react中props 的使用及进行限制的方法
2021/04/28 Javascript
详解Redis复制原理
2021/06/04 Redis
浅谈Web Storage API的使用
2021/06/23 Javascript
Python必备技巧之函数的使用详解
2022/04/04 Python
Java Spring Lifecycle的使用
2022/05/06 Java/Android
docker 制作mysql镜像并自动安装
2022/05/20 Servers