15158846557 在线咨询 在线咨询
15158846557 在线咨询
所在位置: 首页 > 营销资讯 > 网站运营 > 微信公众号实现无限制推送模板消息!可向指定openID群发和群发多个openID!

微信公众号实现无限制推送模板消息!可向指定openID群发和群发多个openID!

时间:2022-08-07 08:00:02 | 来源:网站运营

时间:2022-08-07 08:00:02 来源:网站运营

微信认证的服务号才有推送模板消息接口
所以本文需要在认证服务号的情况下学习







以上就是模板消息,只有文字和跳转链接,没有封面图。
在服务号的后台添加功能插件-模板消息即可。







模板消息,都是在后台选择一个群发模板的,然后获取模板ID,根据这个模板,定义参数即可。
本案例需要获取ACCESS_TOKEN
获取ACCESS_TOKEN其实很简单
开发文档已经给出了获取ACCESS_TOKEN的api





https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=%E6%9B%BF%E6%8D%A2%E8%87%AA%E5%B7%B1%E7%9A%84APPID&secret=%E6%9B%BF%E6%8D%A2%E8%87%AA%E5%B7%B1%E7%9A%84APPSECRET

然后访问替换后的链接就会返回一串JSON格式的数据里面就有ACCESS_TOKEN






当然ACCESS_TOKEN是会过期的
自己需要整合这个api自动获取
我们学习过程中做测试可以直接获取粘贴上去。
当然调用这个接口需要配置IP白名单
如果获取过程中出现一串英文,里面有IP地址,就说明你还没配置IP白名单
你需要进入公众号后台安全中心-IP白名单-粘贴提示的IP地址即可

如果你要给指定的openID群发模板消息
例如你公司做教育培训服务的
有3个学生报了你们公司的某课程培训班
你需要在上课前15分钟主动向每个学生的微信推送模板消息通知上课
那么这三个学生需要关注你的服务号
你还要获取到这三个学生的openID
然后存入数组中,遍历数组发送即可。

获取openID的方法
1、配置回调域名
进入公众号,接口权限,找到网页服务,网页获取用户基本信息







进去修改你的域名即可


新建oauth.php

<?php //获取微信access_tokenfunction getaccess_token(){ $code = $_GET['code']; $appid = '自己的appid'; $appsecret = '自己的appsecret'; $url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid={$appid}&secret={$appsecret}&code={$code}&grant_type=authorization_code"; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL,$url); curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER,0); $data = curl_exec($ch); curl_close($ch); echo $data;}getaccess_token();配置用户要访问的网页

https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect



REDIRECT_URI是回调链接
就是上面的oauth.php的地址
例如你的域名是
http://www.baidu.com
你把oauth.php上传到根目录
那么URL转码的回调链接就是
http://www.baidu.com/oauth.php

回调链接需要URL转码
给大家提供一个转码工具







http://tool.oschina.net/encod...

最终的回调链接是
http%3A%2F%2Fwww.baidu.com%2Foauth.php

例如的你APPID是:wx66666666666666
整个用户要访问的网页就是



https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx66666666666666&redirect_uri=http://www.baidu.com/oauth.php&response_type=code&scope=SCOPE&state=STATE#wechat_redirect




用户访问的网页也需要URL转码
最终的网址是:



https%3A%2F%2Fopen.weixin.qq.com%2Fconnect%2Foauth2%2Fauthorize%3Fappid%3Dwx66666666666666%26redirect_uri%3Dhttp%3A%2F%2Fwww.baidu.com%2Foauth.php%26response_type%3Dcode%26scope%3DSCOPE%26state%3DSTATE%23wechat_redirect




然后用微信访问上面的最终的网址,就会返回一串JSON数据,里面有openid
要想获得3个学生的openid那么就要这三个学生点进去,获取发给你

下面就是模板消息推送给指定的openid的代码
我就以这三个学生的openid为例

<?php$ACCESS_TOKEN = "替换你的ACCESS_TOKEN";//ACCESS_TOKEN//openid数组$touser = [ 'ouD7BuHpIKRXPIz7pdrwI9IwDRCU', 'ouD7BuI36wSUZgteyiydmDrldQLU', 'ouD7BuLejq7R4Vbuyh41bH778cg0'];//模板消息请求URL$url = "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=" . $ACCESS_TOKEN;//遍历发送微信消息foreach ($touser as $value) { $data = getDataArray($value); $json_data = json_encode($data);//转化成json数组让微信可以接收 $res = https_request($url, urldecode($json_data));//请求开始 $res = json_decode($res, true); if ($res['errcode'] == 0 && $res['errcode'] == "ok") { echo "发送成功!<br/>"; }}//获取发送数据数组function getDataArray($value){ $data = array( 'touser' => $value, //要发送给用户的openid 'template_id' => "mfopDNUlvoBGGsPLB-d_nrfL8Je92xnTq5vk5ZBxL-w",//改成自己的模板id,在微信后台模板消息里查看 'url' => "http://mp.weixin.qq.com/s/8UWPqHVa8PReWZp-No0ebA", //自己网站链接url 'data' => array( 'first' => array( 'value' => "亲爱的同学,您有考试提醒,请查阅。", 'color' => "#000" ), 'keyword1' => array( 'value' => "2017下半年教师资格证面试", 'color' => "#f00" ), 'keyword2' => array( 'value' => "2018-1-6", 'color' => "#173177" ), 'keyword3' => array( 'value' => "请看您的准考证", 'color' => "#3d3d3d" ), 'keyword4' => array( 'value' => "教师资格证试讲", 'color' => "#3d3d3d" ), 'keyword5' => array( 'value' => "答辩,选题,结构化", 'color' => "#3d3d3d" ), 'remark' => array( 'value' => "/n现在是打印准考证时间,请您在考试前打印准考证,戳进来可以查看详情>>>", 'color' => "#3d3d3d" ), ) ); return $data;}//curl请求函数,微信都是通过该函数请求function https_request($url, $data = null){ $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE); if (!empty($data)) { curl_setopt($curl, CURLOPT_POST, 1); curl_setopt($curl, CURLOPT_POSTFIELDS, $data); } curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); $output = curl_exec($curl); curl_close($curl); return $output;}?>新建test.php
拷贝代码
修改你的
ACCESS_TOKEN
修改你的学生的3个openid
修改你的模板ID
模板ID是什么?
就是你要推送的那个卡片的模板
例如支付成功模板,上课通知模板,发货模板....







当然代码我觉得你们看得懂的!
只要修改模板里面的自定义参数
然后确保ACCESS_TOKEN还在有效期内
访问test.php
你这三个学生就会同时收到推送的模板消息了!
一天最多推送100000条!
还可以点进去直接访问你配置的lP链接

转载请注明出处!

关键词:指定,实现,公众,无限,模板

74
73
25
news

版权所有© 亿企邦 1997-2025 保留一切法律许可权利。

为了最佳展示效果,本站不支持IE9及以下版本的浏览器,建议您使用谷歌Chrome浏览器。 点击下载Chrome浏览器
关闭