1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > 微信公众平台开发 自定义菜单 群发消息 网页授权(3)

微信公众平台开发 自定义菜单 群发消息 网页授权(3)

时间:2021-06-28 00:05:22

相关推荐

微信公众平台开发 自定义菜单 群发消息 网页授权(3)

前两节说的都是微信开发的初级篇,这一节说高级篇。微信公众号关注以后,下面都是有菜单的,底部有三个一级菜单,每个一级菜单可以添加5个二级菜单。一级菜单最多四个汉字,二级菜单最多7个汉字,多出来的汉字用“......”号,菜单自定义以后,由于缓存原因,需要取消再次关注才能生效。微信的菜单本质上就是一个按钮,既然是按钮,他就是有多种属性的按钮,微信开发中我们最常用的按钮类型是clickview,其他的按钮类型还有scancode_push(调用扫一扫)、scancode_waitmsgpic_sysphotopic_photo_or_albumpic_weixin等等,这些不常用而已。所以我主要说的菜单类型click,view这两种,创建菜单,代码如下:

<?php

//自定义菜单需要access_token,所以我们这里先获取票据access_token,这里可以写一个方法,

public function getToken(){

//由于token一天的访问次数是两千次,并且每次的有效时长是7200秒,所以我们可以给他做一存储,可以在cookie,session,redis,memcache,mysql中都可以,我们这里存储在session中

if( $SESSION['token'] && $SESSION[keeptime]>time() ){

//直接返回票据access_token()

return $SESSION['token'];

}else{

$appid = ""; //这里填写你自己的公众号里的appid

$appsecret = ""; //这里填写你自己的公众号里的appsecret

$url = "https://api./cgi-bin/token?grant_type=client_credential&appid=".$appid."&secret=".$appsecret;

//初始化curl

$ch = curl_init();

//设置参数

curl_setopt($ch,CURLOPT_URL,$url);

curl_setopt($ch,CURLOPT_RETURNTRNSFER,1);

//执行curl

$token = curl_exec($ch);

//关闭curl

curl_close();

//由于返回的数据是json个格式,需要进行转换

$token = json_decode($token,true);

$SESSION['token'] = $token['access_token'];

$SESSION['keeptime'] = $tokenp['exprires_in']+time();

}

}

//定义自定义菜单的方法

public function createcai(){

//获取token

$token = $this->$getToken();

//api请求URL,这里用的是POST方法

$url = "https://api./cgi-bin/menu/create?access_token=".$token;

//数据设置

/**

下面是微信公众平台官方提供的数据格式

{

"button":[

{

"type":"click",

"name":"今日歌曲",

"key":"V1001_TODAY_MUSIC"

},

{

"name":"菜单",

"sub_button":[

{

"type":"view",

"name":"搜索",

"url":"/"

},

{

"type":"miniprogram",

"name":"wxa",

"url":"http://mp.",

"appid":"wx286b93c14bbf93aa",

"pagepath":"pages/lunar/index"

},

{

"type":"click",

"name":"赞一下我们",

"key":"V1001_GOOD"

}]

}]

}

**/

//数据设置

$arr = array(

"button"=>array(

array("type"=>"click","name"=>"今日新闻","key"=>"item1"),

array("name"=>"网红新闻","sub_button"=>array(

array("type"=>"view","name"=>"网红天佑","url"=>""),

array("type"=>"click","name"=>"网红大事件","key"=>"item2"),

),

array("type"=>"click","name"=>"关于我们","key"=>"item3")

);

);

//把上面的数据的转换为json个格式,这里需要注意一个问题,json_encode()函数在转换时,中文的会乱码,所以这里需要urlencode()函数

$arr = urldecode(json_decode(urlencode($arr)));

//使用curl的post请求,curl在微信开发中的使用非常的频繁,可以写一个方法封装好,我这里为了方便大家学习就没有封装

$ch = curl_init();

curl_setopt($ch,CURLOPT_URL,$url);

curl_setopt($ch,CURLOPT_HEADER,false);

curl_setopt($ch,CURLOPT_POSTFILDS,$arr);

curl_setopt($ch,CURLOPT_POST,true);

curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);

$res = curl_exec();

if(curl_errno($ch)){

return curl_error($ch);

}else{

return json_decode($res,true);

}

curl_close();

}

这样自定义菜单就实现了,其实还是非常简单的,需要大家反复的联系。

微信公众号群发功能也是一个常见的功能,群发功能是订阅号每天一次,服务号是一个月4次,所以开发的时候切记不要直接用群发接口,可以使用预览接口,这样可以防止错误后不能再发顺。群发可以是文本,图片,视频,音频等。这个功能实现起来也是非常简单,话不多说,代码如下:

<?php

//这里我调用的接口是预览接口,其实是一样的,只是把请求的URL换掉就可以了

public function qunfa(){

//获取token

$token = $this->getToken();

//这是预览接口的url,POST请求

$url = "https://api./cgi-bin/message/mass/preview?access_token=".$token;

/**

这是文本的格式

{

"touser":"OPENID",

"text":{

"content":"CONTENT"

},

"msgtype":"text"

}

**/

//设置数据,按照文档给的文本格式

$arr = array(

"touser"=>" 填写用户ID","text"=>array("content"=>"大家好,新年快乐!"),"msgtype"=>"text"

);

//curl发顺请求

$ch = curl_init();

//设置参数

curl_setopt($ch,CURLOPT_URL,$url);

curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);

curl_setopt($ch,CURLOPT_POSTFIELDS,$arr);

curl_setopt($ch,CURLOPT_POST,true);

$res = curl_exec();

if(curl_errno($ch)){

return curl_error($ch);

}else{

return json_decode($res,true);

}

}

以上就是预览群发功能,接下来是给大家讲一讲网页授权的功能

网页授权是微信开发非常重要的知识点,也是必须要掌握的,在公司的营销,以及业务场景中是经常用到的,学习的时候建议结合开发文档进行,应用场景:如果用户在微信客户端中访问第三方网页,公众号可以通过微信网页授权机制,来获取用户基本信息,进而实现业务逻辑。今天有点累了,后边明天给大家分享。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。