微信二次开发-自定义菜单创建接口

自定义菜单

自定义菜单可以更加了解一个公众号。自定义菜单包括3个一级菜单,每个一级菜单只能包含5个二级菜单。一级菜单最多4个字,二级菜单最多7个字。了解完这些我们就可以去自己自定义一个菜单了。

因为自定义菜单的接口为 https://api.weixin.qq.com/cgi-bin/menu/create?access_token=ACCESS_TOKEN,所以我们需要获取到access_token。这是很重要的。每个人用来获取access_token的方法不同。在这里我写一个我获取access_token的方法。

<?php
define('APPID', "wxf255b4e969112087");
define('SECRET', "1f9cc54a8921598ec9e4ea9f683b4305");
define('FILE', "file.txt");
function gettoken(){
	//判断文件是否存在
	if (file_exists(FILE)) {
		//读取文件得到字符串
		$str = file_get_contents(FILE);
		//字符串变成数组
		$arr = json_decode($str,true);
		//如果文件存在那么判断是否过时
		if (time() - $arr['create_time'] > $arr['expires_in']-300) {
			//如果过时的话,就去获取新的token
			return access();
		}else{
             //如果没有过时的话就去用原来文件里的
			return $arr['access_token'];
		}
	}else{
        //如果文件不存在就去获取
        return access();
	}
}
//获取access_token,返回给调用者,把微信api返回的串写入到文件中把当前时间加进去方便比较
function access(){
$url="https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=".APPID."&secret=".SECRET;
// 创建一个新cURL资源
$ch  =  curl_init ();
// 设置URL和相应的选项
curl_setopt ( $ch ,  CURLOPT_URL ,  $url );
curl_setopt ( $ch ,  CURLOPT_HEADER ,  false );
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
curl_setopt($ch, CURLOPT_SSLVERSION, 1);
// 抓取URL并把它传递给浏览器
$token=curl_exec ( $ch );
//关闭cURL资源,并且释放系统资源
curl_close ( $ch );
// echo $token;
//将json转换为数组
$arr = json_decode($token,true);
// print_r($arr);
if (isset($arr['access_token'])) {
	$create_time=time();
	// echo $create_time;
	//将时间追加入数组中
	$arr['create_time']=$create_time;
	// print_r($arr);
	//从数组转化为json
	$json=json_encode($arr);
	//写入文件里
	file_put_contents(FILE, $json);
}else{
	return false;
}
}
?>

curl_setopt,设置一个curl传输选项。它可以有三个参数。第一个是由curl_in返回的句柄。第二个是需要设置的curlopt选项。第三个是将设置在第二个选项的值。第二个curlopt选项是非常多的,这里就不为大家列举了,大家可以去查一下资料。

注:appid和secret需要真实有效!

正常情况写会返回一个json数据

{"access_token":"ACCESS_TOKEN","expires_in":7200}

因为我们需要给一个与微信公众平台官方一样的xml形式的数据。

$menu=<<< MENU
 {
     "button":[
     {    
          "type":"click",
          "name":"今日歌曲",
          "key":"V1001_TODAY_MUSIC"
      },
      {
           "name":"菜单",
           "sub_button":[
           {    
               "type":"view",
               "name":"搜索",
               "url":"http://www.soso.com/"
            },
            {
               "type":"click",
               "name":"赞一下我们",
               "key":"V1001_GOOD"
            }]
       }]
 }
MENU;

这个数据的格式,大家需要看清楚。如果格式是错误的那么菜单就会出错误。它是一个以{}开始的,里边是“button”:[]。这是一个固定的格式。而button里边则是以{}分割,每一个{},就代表了一个菜单。

上边我们已经获得了access_token。那么我们直接去调用自定义菜单的接口就可以了。大家看一下代码。

<?php
//获取access_token
include 'access.php';
$access_token=gettoken();
//创建接口
$url= "https://api.weixin.qq.com/cgi-bin/menu/create?access_token=$access_token";
// echo $url;
$menu=<<< MENU
 {
     "button":[
     {    
          "type":"click",
          "name":"今日歌曲",
          "key":"V1001_TODAY_MUSIC"
      },
      {
           "name":"菜单",
           "sub_button":[
           {    
               "type":"view",
               "name":"搜索",
               "url":"http://www.soso.com/"
            },
            {
               "type":"click",
               "name":"赞一下我们",
               "key":"V1001_GOOD"
            }]
       }]
 }
MENU;
// echo $menu;
$ch  =  curl_init ();
// 设置URL和相应的选项
curl_setopt ( $ch ,  CURLOPT_URL ,  $url );
curl_setopt ( $ch ,  CURLOPT_HEADER ,  false );
curl_setopt($ch, CURLOPT_POST, true );
curl_setopt($ch, CURLOPT_POSTFIELDS, $menu);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
curl_setopt($ch, CURLOPT_SSLVERSION, 1);
// 抓取URL并把它传递给浏览器
$token=curl_exec ( $ch );
//关闭cURL资源,并且释放系统资源
curl_close ( $ch );
echo $token;
?>
这样自定义菜单就完成了。快去看一看你的菜单有没有完成呢!



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
如果您下载了本程序,但是该程序存在问题无法运行,那么您可以选择退款或者寻求我们的帮助(如果找我们帮助的话,是需要追加额外费用的)。另外,您不会使用资源的话(这种情况不支持退款),也可以找我们帮助(需要追加额外费用) 爬虫(Web Crawler)是一种自动化程序,用于从互联网上收集信息。其主要功能是访问网页、提取数据并存储,以便后续分析或展示。爬虫通常由搜索引擎、数据挖掘工具、监测系统等应用于网络数据抓取的场景。 爬虫的工作流程包括以下几个关键步骤: URL收集: 爬虫从一个或多个初始URL开始,递归或迭代地发现新的URL,构建一个URL队列。这些URL可以通过链接分析、站点地图、搜索引擎等方式获取。 请求网页: 爬虫使用HTTP或其他协议向目标URL发起请求,获取网页的HTML内容。这通常通过HTTP请求库实现,如Python中的Requests库。 解析内容: 爬虫对获取的HTML进行解析,提取有用的信息。常用的解析工具有正则表达式、XPath、Beautiful Soup等。这些工具帮助爬虫定位和提取目标数据,如文本、图片、链接等。 数据存储: 爬虫将提取的数据存储到数据库、文件或其他存储介质中,以备后续分析或展示。常用的存储形式包括关系型数据库、NoSQL数据库、JSON文件等。 遵守规则: 为避免对网站造成过大负担或触发反爬虫机制,爬虫需要遵守网站的robots.txt协议,限制访问频率和深度,并模拟人类访问行为,如设置User-Agent。 反爬虫应对: 由于爬虫的存在,一些网站采取了反爬虫措施,如验证码、IP封锁等。爬虫工程师需要设计相应的策略来应对这些挑战。 爬虫在各个领域都有广泛的应用,包括搜索引擎索引、数据挖掘、价格监测、新闻聚合等。然而,使用爬虫需要遵守法律和伦理规范,尊重网站的使用政策,并确保对被访问网站的服务器负责。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值