微信公眾號(hào)之主動(dòng)給用戶發(fā)送消息功能
前一段時(shí)間項(xiàng)目中遇到一個(gè)稍微麻煩一點(diǎn)的問(wèn)題。
即客戶要求,他在后臺(tái)編輯好文章后要主動(dòng)給每個(gè)用戶都發(fā)送消息,并可以讓用戶點(diǎn)擊直接進(jìn)入文章頁(yè)面。
于是乎,當(dāng)時(shí)腦子一熱,想著沒什么大的問(wèn)題,so easy。模板消息不就得了。
后來(lái)在寫代碼的過(guò)程中卻發(fā)現(xiàn),并不行。
微信公眾號(hào)中模板消息有很嚴(yán)格的限制。
1.必須有用戶主動(dòng)觸發(fā)事件方可發(fā)送模板消息
2.模板消息一分鐘只能發(fā)送六十條,超過(guò)六十條,不好意思。你懂。
于是乎,就想到了另一種方法:群發(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 條客服消息。超過(guò)后用戶就收不到消息,
超過(guò)后,用戶必須 主動(dòng)給公眾號(hào)發(fā)送消息 。或者 點(diǎn)擊菜單欄,這樣20條消息的限制就會(huì)重置。
總結(jié)
以上所述是小編給大家介紹的微信公眾號(hào)之主動(dòng)給用戶發(fā)送消息功能,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)歡迎給我留言,小編會(huì)及時(shí)回復(fù)大家的!
相關(guān)文章
PHP+Mysql無(wú)刷新問(wèn)答評(píng)論系統(tǒng)(源碼)
自己寫的一個(gè)評(píng)論系統(tǒng)源碼分享給大家,包括有表情,還有評(píng)論機(jī)制,代碼簡(jiǎn)單易懂,需要的朋友參考下2016-12-12
laravel 輸出最后執(zhí)行sql 附:whereIn的使用方法
今天小編就為大家分享一篇laravel 輸出最后執(zhí)行sql 附:whereIn的使用方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-10-10
PHP中strlen()和mb_strlen()的區(qū)別淺析
這篇文章主要介紹了PHP中strlen()和mb_strlen()的區(qū)別淺析,本文探討的中英混合的字符在使用這個(gè)函數(shù)時(shí)的區(qū)別,需要的朋友可以參考下2014-06-06
thinkphp實(shí)現(xiàn)發(fā)送郵件密碼找回功能實(shí)例
這篇文章主要介紹了thinkphp實(shí)現(xiàn)發(fā)送郵件密碼找回功能的方法,以實(shí)例形式詳細(xì)講述了配置文件與功能代碼的實(shí)現(xiàn)方法,是非常實(shí)用的技巧,需要的朋友可以參考下2014-12-12
Codeigniter框架實(shí)現(xiàn)獲取分頁(yè)數(shù)據(jù)和總條數(shù)的方法
這篇文章主要介紹了Codeigniter框架實(shí)現(xiàn)獲取分頁(yè)數(shù)據(jù)和總條數(shù)的方法,實(shí)現(xiàn)了對(duì)獲取當(dāng)前頁(yè)的數(shù)據(jù)和總條數(shù)方法的封裝,是非常實(shí)用的技巧,需要的朋友可以參考下2014-12-12
laravel異步監(jiān)控定時(shí)調(diào)度器實(shí)例詳解
這篇文章主要給大家介紹了關(guān)于laravel異步監(jiān)控定時(shí)調(diào)度器的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用laravel具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-06-06
PHP stream_context_create()函數(shù)的使用示例
這篇文章主要介紹了PHP stream_context_create()函數(shù)的使用示例,stream_context_create()函數(shù)是用來(lái) 創(chuàng)建打開文件的上下文件選項(xiàng),用于fopen(),file_get_contents()等過(guò)程的超時(shí)設(shè)置、代理服務(wù)器、請(qǐng)求方式、頭信息設(shè)置的特殊過(guò)程,需要的朋友可以參考下2015-05-05
PHP xpath提取網(wǎng)頁(yè)數(shù)據(jù)內(nèi)容代碼解析
這篇文章主要介紹了PHP xpath提取網(wǎng)頁(yè)數(shù)據(jù)內(nèi)容代碼解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-07-07
Yii2學(xué)習(xí)筆記之漢化yii設(shè)置表單的描述(屬性標(biāo)簽attributeLabels)
這篇文章主要介紹了Yii2學(xué)習(xí)筆記之漢化yii設(shè)置表單的描述(屬性標(biāo)簽attributeLabels),非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2017-02-02

