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服务器实现多session并发运行
Oct 09 PHP
IIS6.0+PHP5.x+MySQL5.x+Zend3.0x+GD+phpMyAdmin2.8x通用安装实例(已经完成)
Dec 06 PHP
Google Voice 短信发送接口PHP开源版(2010.5更新)
Jul 22 PHP
PHP mcrypt可逆加密算法分析
Jul 19 PHP
基于PHP开发中的安全防范知识详解
Jun 06 PHP
php出现web系统多域名登录失败的解决方法
Sep 30 PHP
VPS中使用LNMP安装WordPress教程
Dec 28 PHP
php简单图像创建入门实例
Jun 10 PHP
深入浅析php json 格式控制
Dec 24 PHP
php实现的xml操作类
Jan 15 PHP
php获取指定数量随机字符串的方法
Feb 06 PHP
分享8个Laravel模型时间戳使用技巧小结
Feb 12 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
Laravel网站打开速度优化的方法汇总
2017/07/16 PHP
PHP+Oracle本地开发环境搭建方法详解
2019/04/01 PHP
javascript不同页面传值的改进版
2008/09/30 Javascript
用AJAX返回HTML片段中的JavaScript脚本
2010/01/04 Javascript
关于UTF-8的客户端用AJAX方式获取GB2312的服务器端乱码问题的解决办法
2010/11/30 Javascript
基于JQuery实现异步刷新的代码(转载)
2011/03/29 Javascript
jquery 按键盘上的enter事件
2014/05/11 Javascript
推荐9款炫酷的基于jquery的页面特效
2014/12/07 Javascript
javascript实用方法总结
2015/02/06 Javascript
获取阴历(农历)和当前日期的js代码
2016/02/15 Javascript
JavaScript制作简单分页插件
2016/09/11 Javascript
nodejs连接mongodb数据库实现增删改查
2016/12/01 NodeJs
详解vue 数据传递的方法
2018/04/19 Javascript
一次Webpack配置文件的分离实战记录
2018/11/30 Javascript
jQuery的ztree仿windows文件新建和拖拽功能的实现代码
2018/12/05 jQuery
OpenLayer学习之自定义测量控件
2020/09/28 Javascript
解决antd 表单设置默认值initialValue后验证失效的问题
2020/11/02 Javascript
python 内置函数filter
2017/06/01 Python
Pycharm导入Python包,模块的图文教程
2018/06/13 Python
Flask框架实现给视图函数增加装饰器操作示例
2018/07/16 Python
python使用OpenCV模块实现图像的融合示例代码
2020/04/10 Python
Python使用monkey.patch_all()解决协程阻塞问题
2020/04/15 Python
Python Request类源码实现方法及原理解析
2020/08/17 Python
python 可视化库PyG2Plot的使用
2021/01/21 Python
CSS3 二级导航菜单的制作的示例
2018/04/02 HTML / CSS
购买澳大利亚最好的服装和内衣在线:BONDS
2016/10/14 全球购物
COSETTE官网:奢华,每天
2020/03/22 全球购物
大学生毕业自我鉴定范文
2013/11/03 职场文书
12岁生日感言
2014/01/21 职场文书
《凡卡》教学反思
2014/04/09 职场文书
电大毕业生自我鉴定
2014/04/10 职场文书
金陵十三钗观后感
2015/06/04 职场文书
uniapp开发小程序的经验总结
2021/04/08 Javascript
Python中re模块的元字符使用小结
2022/04/07 Python
mysql查找连续出现n次以上的数字
2022/05/11 MySQL
Win11 Beta 预览版 22621.575 和 22622.575更新补丁KB5016694发布(附更新内容大全)
2022/08/14 数码科技