微信公眾號(hào)之主動(dòng)給用戶發(fā)送消息功能
前一段時(shí)間項(xiàng)目中遇到一個(gè)稍微麻煩一點(diǎn)的問題。
即客戶要求,他在后臺(tái)編輯好文章后要主動(dòng)給每個(gè)用戶都發(fā)送消息,并可以讓用戶點(diǎn)擊直接進(jìn)入文章頁(yè)面。
于是乎,當(dāng)時(shí)腦子一熱,想著沒什么大的問題,so easy。模板消息不就得了。
后來在寫代碼的過程中卻發(fā)現(xiàn),并不行。
微信公眾號(hào)中模板消息有很嚴(yán)格的限制。
1.必須有用戶主動(dòng)觸發(fā)事件方可發(fā)送模板消息
2.模板消息一分鐘只能發(fā)送六十條,超過六十條,不好意思。你懂。
于是乎,就想到了另一種方法:群發(fā)消息
但是一看文檔中群發(fā)消息的限制,發(fā)現(xiàn)悲催了
群發(fā)消息服務(wù)號(hào)每個(gè)月最多只能發(fā)送4條。
而客戶要求的是隨時(shí)隨地就能發(fā)送.這個(gè)4條明顯不符合要求的。
怎么辦呢?一度陷入困難之中。只好繼續(xù)查看開發(fā)文檔。
當(dāng)看到客服功能時(shí),突然想到,能不能用客服主動(dòng)給用戶發(fā)送消息呢?
于是乎,想到就去試驗(yàn)下。
首先,先在公眾號(hào)后臺(tái)功能模塊中-》添加功能模塊 添加 客服功能 模塊
如圖所示:
然后就進(jìn)入代碼環(huán)節(jié)了。
先添加客服。也可以公眾號(hào)后臺(tái)添加
//先添加客服 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); }
然后就是主動(dòng)發(fā)送消息的方法
//獲取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; } //調(diào)用發(fā)送方法 function sendmsg($content,$openid) { $token = getToken(); $url = 'https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token='.$token; $content = '感謝你的關(guān)注\n回復(fù)你厲害 \n例如<a href=\"http://www.baidu.com\">回復(fù)123456</a>'; $data = '{ "touser":"'.$openid.'", "msgtype":"text", "text": { "content":"'.$content.'" } }'; https_request($url,$data); return true; } /** * request 請(qǐng)求 */ 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; }
使用的時(shí)候直接調(diào)用 sendmsg()
方法傳值就可以了。
最后上完成的圖
如圖所示,公眾號(hào)可以給用戶發(fā)送消息,而且發(fā)送的內(nèi)容你可以使用html 標(biāo)簽哦
雖然這樣感覺很方便,但是同樣,微信公眾平臺(tái)對(duì)此也有限制。
1.用戶必須關(guān)注公眾號(hào),方可收到信息。
2.用戶只能連續(xù)收到 20 條客服消息。超過后用戶就收不到消息,
超過后,用戶必須 主動(dòng)給公眾號(hào)發(fā)送消息 ?;蛘?nbsp; 點(diǎn)擊菜單欄,這樣20條消息的限制就會(huì)重置。
總結(jié)
以上所述是小編給大家介紹的微信公眾號(hào)之主動(dòng)給用戶發(fā)送消息功能,希望對(duì)大家有所幫助,如果大家有任何疑問歡迎給我留言,小編會(huì)及時(shí)回復(fù)大家的!
相關(guān)文章
laravel orm 關(guān)聯(lián)條件查詢代碼
今天小編就為大家分享一篇laravel orm 關(guān)聯(lián)條件查詢代碼,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-10-10laravel開發(fā)環(huán)境homestead搭建過程詳解
Laravel Homestead 是一個(gè)官方預(yù)封裝的 Vagrant box ,它為你提供了一個(gè)完美的開發(fā)環(huán)境,你不需要在本地機(jī)器安裝 PHP、web 服務(wù)器和其他的服務(wù)器軟件,這篇文章主要介紹了laravel開發(fā)環(huán)境homestead搭建,需要的朋友可以參考下2020-07-07yii2.0使用Plupload實(shí)現(xiàn)帶縮放功能的多圖上傳
這篇文章主要介紹了yii2.0使用Plupload實(shí)現(xiàn)帶縮放功能的多圖上傳的相關(guān)資料,需要的朋友可以參考下2015-12-12檢測(cè)codeigniter腳本消耗內(nèi)存情況的方法
這篇文章主要介紹了檢測(cè)codeigniter腳本消耗內(nèi)存情況的方法,實(shí)例分析了codeigniter中memory_usage方法及{ memory_usage}偽變量的使用技巧,需要的朋友可以參考下2015-03-03laravel 實(shí)現(xiàn)上傳圖片到本地和前臺(tái)訪問示例
今天小編就為大家分享一篇laravel 實(shí)現(xiàn)上傳圖片到本地和前臺(tái)訪問示例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-10-10在CentOS系統(tǒng)上從零開始搭建WordPress博客的全流程記錄
這篇文章主要介紹了在CentOS系統(tǒng)中從零開始搭建WordPress站點(diǎn)的全流程記錄,使用最大眾的Apache服務(wù)器和MySQL數(shù)據(jù)庫(kù)環(huán)境,需要的朋友可以參考下2016-04-04微信公眾號(hào)開發(fā)之語音消息識(shí)別php代碼
這篇文章主要為大家詳細(xì)介紹了微信公眾號(hào)開發(fā)之語音消息識(shí)別php代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-08-08注冊(cè)頁(yè)面之前先驗(yàn)證用戶名是否存在的php代碼
注冊(cè)頁(yè)面之前先驗(yàn)證用戶名是否存在的php代碼,需要的朋友可以參考下2012-07-07Laravel框架Eloquent ORM新增數(shù)據(jù)、自定義時(shí)間戳及批量賦值用法詳解
這篇文章主要介紹了Laravel框架Eloquent ORM新增數(shù)據(jù)、自定義時(shí)間戳及批量賦值用法,結(jié)合實(shí)例形式詳細(xì)分析了Laravel框架Eloquent ORM通過模型新增數(shù)據(jù)、時(shí)間戳設(shè)置、批量賦值模型、Create新增等相關(guān)使用方法,需要的朋友可以參考下2019-12-12