上周部門老大安排了一個新任務(wù)探越,需求是在公司機器人上打完卡后給打卡人綁定的微信推送打卡信息。
雖然之前沒開發(fā)過窑业,但不妨礙我接收到各種消息推送啊(譬如招行還款啊枕屉,拼多多拼單提醒啊~~)常柄,所以我知道這個肯定是可以做的,并且開發(fā)文檔應(yīng)該也是很成熟的搀擂。果然到網(wǎng)上一搜西潘,結(jié)果很讓人欣喜 ^ ^ 接下來就開始正文啦啦啦
需要的數(shù)據(jù)微信公眾號的開發(fā)者 ID(AppID)、開發(fā)者密碼(AppSecret) & 模板消息id
AppID和AppSecret的獲取可以參考我另外一篇文章哨颂,我們主要說的是模板消息id的獲取
沒有開發(fā)過模板消息的人可能會一臉懵:模板消息是什么玩意喷市?它不是玩意~它就是你接下來要開發(fā)的啊(~ ̄▽ ̄)~
首先要開通模板消息功能
1 >> 在微信公眾平臺的后臺,依次進入“功能->添加功能插件->模板消息”威恼,即可申請模板消息(模板消息的申請需賬號已經(jīng)開通微信支付權(quán)限)
2 >> 點擊申請
3 >> 申請時品姓,選擇2個和自己相關(guān)的行業(yè)即可
4 >> 提交并且申請通過后寝并,可以在模板庫中看到模板消息列表,選擇一個匹配自己的模板消息點擊詳情添加(微信提供的模板消息里面基本已經(jīng)涵蓋的很全了腹备,如果沒有找到合適自己的也可以自己申請創(chuàng)建一個新的模板消息衬潦,我這里用的是一個現(xiàn)成的模板消息)
5 >> 申請完后就可以在自己的模板消息查看你要用的模板消息的id
現(xiàn)在所有的數(shù)據(jù)都拿到了,接下來就是開發(fā)正題了~
public function signPush(){
//獲取token值
$appid = '';
$appsec = '';
$url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={$appid}&secret={$appsec}";
$data = json_decode(file_get_contents($url),1);
$access_token = $data['access_token'];
// 構(gòu)造推送信息數(shù)組
$data = array(
'touser' => '',
'template_id' => '',
'url' => 'http://wx.avatarmind.com', //詳情的跳轉(zhuǎn)鏈接
'topcolor' => "#FF0000",
'data' => array(
'first' => array(
"value" => '簽到成功',
"color" => "#008000"
),
'keyword1' => array(//keyword1植酥、keyword2镀岛、keyword3是模板消息里定義的變量名
"value" => 'suosi',
"color" => "#173177"
),
'keyword2' => array(
"value" => date("Y-m-d H:i:s",time()),
"color" => "#173177"
),
'keyword3' => array(
"value" => '正常',
"color" => "#173177"
),
'remark' => array(
"value" => '今天又是活力滿滿的一天~',
"color" => "#008000"
),
),
);
// 發(fā)布推送消息
$result = $this->curl_post_send_information($access_token,json_encode($data));
Returndata(1,$result,'獲取成功!');
}
public function curl_post_send_information( $token,$vars,$second=120,$aHeader=array())
{
$ch = curl_init();
//超時時間
curl_setopt($ch,CURLOPT_TIMEOUT,$second);
curl_setopt($ch,CURLOPT_RETURNTRANSFER, 1);
//這里設(shè)置代理友驮,如果有的話
curl_setopt($ch,CURLOPT_URL,'https://api.weixin.qq.com/cgi-bin/message/template/send?access_token='.$token);
curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,false);
curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,false);
if( count($aHeader) >= 1 ){
curl_setopt($ch, CURLOPT_HTTPHEADER, $aHeader);
}
curl_setopt($ch,CURLOPT_POST, 1);
curl_setopt($ch,CURLOPT_POSTFIELDS,$vars);
$data = curl_exec($ch);
if($data){
curl_close($ch);
return $data;
}
else {
$error = curl_errno($ch);
curl_close($ch);
return $error;
}
}
效果展示: