您好,登錄后才能下訂單哦!
這篇文章主要為大家展示了“thinkphp如何實(shí)現(xiàn)友盟消息推送”,內(nèi)容簡(jiǎn)而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“thinkphp如何實(shí)現(xiàn)友盟消息推送”這篇文章吧。
上篇文章 thinkphp集成系列之phpmailer批量發(fā)送郵件講過(guò)的;
郵件有著零成本、內(nèi)容豐富的優(yōu)點(diǎn);
但是一個(gè)非常硬的硬傷;這家伙的及時(shí)性太差了;
尤其是隨著90、00后的崛起;從上網(wǎng)開(kāi)始體驗(yàn)的就是QQ、微信的即時(shí)通訊;
唯一有的郵箱也還是自動(dòng)開(kāi)通的QQ郵箱;然而還是一連串的未讀;
那么有木有一種零成本、但是及時(shí)性比較好的方案呢?
有的;那就是消息推送;當(dāng)然;前提是用戶已經(jīng)安裝了app;
今個(gè)先就友盟的推送來(lái)講解下;http://push.umeng.com/
依然是以開(kāi)源項(xiàng)目示例:http://git.oschina.net/shuaibai123/thinkphp-bjyadmin
一:注冊(cè)應(yīng)用
工欲善其事必先注其key;
找到消息推送、添加應(yīng)用;獲得key和secret;
這里面有2個(gè)坑;
1:安卓要用的是Appkey和App Master Secret;不是Umeng Message Sercet;
2:一定要添加 服務(wù)器ip地址、如果是在本地測(cè)試;那直接百度下ip;把查出的ip填上即可;
添加測(cè)試設(shè)備的Device Token;這個(gè)是需要由移動(dòng)端獲取的;
二:創(chuàng)建表
下載示例項(xiàng)目;安裝后會(huì)有users表和oauth_user表;
users表用來(lái)存放用戶的賬號(hào)密碼之類的;
oauth_user表用來(lái)存放移動(dòng)端發(fā)送過(guò)來(lái)的Device Token;
當(dāng)然;自己設(shè)計(jì)表也是可以的;主要就是讓用戶id和Device Token關(guān)聯(lián)起來(lái);
三:集成友盟sdk
sdk目錄:/ThinkPHP/Library/Vendor/Umeng
當(dāng)然;這個(gè)sdk也是被我修改過(guò)的;具體修改了那些地方;同樣也年代久遠(yuǎn);沒(méi)有記錄了;
配置項(xiàng):/Application/Common/Conf/config.php
'UMENG_IOS_APP_KEY' => '', //友盟ios AppKey 'UMENG_IOS_SECRET' => '', //友盟ios App Master Secret 'UMENG_ANDROID_APP_KEY' => '', //友盟android AppKey 'UMENG_ANDROID_SECRET' => '', //友盟android App Master Secret
函數(shù):/Application/Common/Common/function.php
/** * 發(fā)送友盟推送消息 * @param integer $uid 用戶id * @param string $title 推送的標(biāo)題 * @param integer $type 1:官方小秘書 2:我的評(píng)論 * @return boolear 是否成功 */ function umeng_push($uid,$title){ // 獲取token $device_tokens=D('OauthUser')->getToken($uid,2); // 如果沒(méi)有token說(shuō)明移動(dòng)端沒(méi)有登錄;則不發(fā)送通知 if (empty($device_tokens)) { return false; } // 導(dǎo)入友盟 Vendor('Umeng.Umeng'); // 自定義字段 根據(jù)實(shí)際環(huán)境分配;如果不用可以忽略 $status=1; // 消息未讀總數(shù)統(tǒng)計(jì) 根據(jù)實(shí)際環(huán)境獲取未讀的消息總數(shù) 此數(shù)量會(huì)顯示在app圖標(biāo)右上角 $count_number=1; $data=array( 'key'=>'status', 'value'=>"$status", 'count_number'=>$count_number ); // 判斷device_token 64位表示為蘋果 否則為安卓 if(strlen($device_tokens)==64){ $key=C('UMENG_IOS_APP_KEY'); $timestamp=C('UMENG_IOS_SECRET'); $umeng=new \Umeng($key, $timestamp); $umeng->sendIOSUnicast($data,$title,$device_tokens); }else{ $key=C('UMENG_ANDROID_APP_KEY'); $timestamp=C('UMENG_ANDROID_SECRET'); $umeng=new \Umeng($key, $timestamp); $umeng->sendAndroidUnicast($data,$title,$device_tokens); } return true; }
調(diào)用:
umeng_push('1','測(cè)試')
以上是“thinkphp如何實(shí)現(xiàn)友盟消息推送”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。