用模板消息让公众号无限制推送消息

直接上代码

[code]<?php
//获取微信access_token
function getaccess_token(){
//appid与appsecret改成你自己的
$appid = '自己的appid';
$appsecret = '自己的appsecret';
$url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={$appid}&secret={$appsecret}";
$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);
$data = json_decode($data,true);
return $data['access_token'];
}
//设置与发送模板信息
function set_msg($openid){
//获取access_token
$access_token = getaccess_token();
//这里是在模板里修改相应的变量
$formwork = '{
"touser":"'.$openid.'",
"template_id":"oasLSlzdPXF-4U21JRE0lFYLsZWVVFcxY20SC6EAxx4",
"url":"http://www.hilinux.cn",
"data":{
"title": {
"value":"这里是自己定义的标题",
"color":"#173177"
},
"content":{
"value":"这里是自定义内容,点击进入王文晓博客,啦啦啦",
"color":"#173177"
},
"time": {
"value":"这里填写时间",
"color":"#173177"
}
}
}';
$url = "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token={$access_token}";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER,0);
curl_setopt($ch, CURLOPT_POST,1);
curl_setopt($ch, CURLOPT_POSTFIELDS,$formwork);
$data = curl_exec($ch);
curl_close($ch);
return $data;
}
function sendall(){
//获取access_token
$access_token = getaccess_token();
$url = "https://api.weixin.qq.com/cgi-bin/user/get?access_token={$access_token}&next_openid=";
$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);
$data = json_decode($data,true);
return $data['data']['openid'];
}
//'{"total":3,"count":3,"data":{"openid":["oC8xks2kb67MogD8ubzkViHf88x4","oC8xksxbsJMf1FKpr4YEfGsqKHtg","oC8xks4COCfqox1-dXTCsZF_1vIo"]},"next_openid":"oC8xks4COCfqox1-dXTCsZF_1vIo"}'
// array(3) {
// [0]=>
// string(28) "oC8xks2kb67MogD8ubzkViHf88x4"
// [1]=>
// string(28) "oC8xksxbsJMf1FKpr4YEfGsqKHtg"
// [2]=>
// string(28) "oC8xks4COCfqox1-dXTCsZF_1vIo"
// }
//保存所有的openid
$all_openid = sendall();
//把上面设置的信息循环发送到所有的公众号关注的用户手里
foreach ($all_openid as $value) {
set_msg($value);
}
echo '执行完毕';[/code]

代码说明
1、第 5、6 行改成自己公众号的 appid 与 appsecret。
2、24 行要改成你的模板 ID。
3、模板标题与内容(内容中的代码一定要与图写的一样)。
代码详解
开头的函数 getaccess_token 是获取自己公众号的 access_token。
22-40 行是定义要发送的消息的信息
23 行是指明消息发给那个 openid ,这里的 openid 通过参数传进来
24 行是指明要用哪个模板。
25 行是指点开消息后打开那个地址。(我设置的 http://www.hilinux.cn)
26 行 data 里的值要与模板中的内容相对应。
4. 我建立的模板内容中有 {{title.DATA}}{{content.DATA}}{{time.DATA}}。data 里面就要设置相应的内容来替换掉前面的三个变量。
42-49 行把 $forwork 函数 POST 到 41 行的地址中。信息就发送出去了。
函数 sendall 是获取此测试号的所有的粉丝的 openid,56 行是获取所有粉丝的地址。需要拼接上自己公众号的 access_token
获取后的 json 数据如 65 行,我的测试号只有三个粉丝,所以 json 数据里有三个 openid。62 行把 json 转换成数组,63 行取出 openid 的部分。(如 67-73 行)
78 行把数组里面的 openid 循环发送到 set_msg 函数中,实现把消息发送给粉丝。

当然 OPENID 也可以从你的数据库里直接读取到!

 

参与评论