這篇文章主要介紹了微信公衆號之主動給用戶發送消息,需要的朋友可以參考下
前一段時間項目中遇到一個稍微麻煩一點的問題。
即客戶要求,他在後臺編輯好文章後要主動給每個用戶都發送消息,並可以讓用戶點擊直接進入文章頁面。
於是乎,當時腦子一熱,想着沒什麼大的問題,so easy。模板消息不就得了。
後來在寫代碼的過程中卻發現,並不行。
微信公衆號中模板消息有很嚴格的限制。
1.必須有用戶主動觸發事件方可發送模板消息
2.模板消息一分鐘只能發送六十條,超過六十條,不好意思。你懂。
於是乎,就想到了另一種方法:羣發消息
但是一看文檔中羣發消息的限制,發現悲催了
羣發消息服務號每個月最多隻能發送4條。
而客戶要求的是隨時隨地就能發送.這個4條明顯不符合要求的。
怎麼辦呢?一度陷入困難之中。只好繼續查看開發文檔。
當看到客服功能時,突然想到,能不能用客服主動給用戶發送消息呢?
於是乎,想到就去試驗下。
首先,先在公衆號後臺功能模塊中-》添加功能模塊 添加 客服功能 模塊
如圖所示:
然後就進入代碼環節了。
先添加客服。也可以公衆號後臺添加
//先添加客服 function addkf() { $token = getToken(); $url = 'https://api.weixin.qq.com/customservice/kfaccount/add?access_token='.$token; $data = '{ "kf_account" : "system@system", "nickname" : "客服1", "password" : "admin", }'; echo https_request($url,$data); }
然後就是主動發送消息的方法
//獲取access_token的方法。 function getToken() { $appid = 'appid'; $appsecret = 'appsecret'; $token_file = dirname(dirname(__FILE__)).'/data/token.txt'; if(!file_exists($token_file) || ((time() - filemtime($token_file)) > 7000)){ $TOKEN_URL="https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=".$appid."&secret=".$appsecret; $json=file_get_contents($TOKEN_URL); $result=json_decode($json); $ACC_TOKEN=$result->access_token; file_put_contents($token_file,$ACC_TOKEN); }else{ $ACC_TOKEN = file_get_contents($token_file); } return $ACC_TOKEN; } //調用發送方法 function sendmsg($content,$openid) { $token = getToken(); $url = 'https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token='.$token; $content = '感謝你的關注\n回覆你厲害 \n例如<a href=\"http://www.baidu.com\">回覆123456</a>'; $data = '{ "touser":"'.$openid.'", "msgtype":"text", "text": { "content":"'.$content.'" } }'; https_request($url,$data); return true; } /** * request 請求 */ 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; }
使用的時候直接調用 sendmsg()
方法傳值就可以了。
最後上完成的圖
如圖所示,公衆號可以給用戶發送消息,而且發送的內容你可以使用html 標籤哦
雖然這樣感覺很方便,但是同樣,微信公衆平臺對此也有限制。
1.用戶必須關注公衆號,方可收到信息。
2.用戶只能連續收到 20 條客服消息。超過後用戶就收不到消息,
超過後,用戶必須 主動給公衆號發送消息 。或者 點擊菜單欄,這樣20條消息的限制就會重置。
總結
以上所述是小編給大家介紹的微信公衆號之主動給用戶發送消息功能,希望對大家有所幫助,如果大家有任何疑問歡迎給我留言,小編會及時回覆大家的!