上篇文章 thinkphp集成系列之phpmailer批量發送郵件講過的;php
郵件有着零成本、內容豐富的優勢;android
可是一個很是硬的硬傷;這傢伙的及時性太差了;ios
尤爲是隨着90、00後的崛起;從上網開始體驗的就是QQ、微信的即時通信;git
惟一有的郵箱也仍是自動開通的QQ郵箱;然而仍是一連串的未讀;thinkphp
那麼有木有一種零成本、可是及時性比較好的方案呢?服務器
有的;那就是消息推送;固然;前提是用戶已經安裝了app;微信
今個先就友盟的推送來說解下;http://push.umeng.com/app
依然是以開源項目示例:http://git.oschina.net/shuaibai123/thinkphp-bjyadmin函數
一:註冊應用測試
工欲善其事必先注其key;
找到消息推送、添加應用;得到key和secret;
這裏面有2個坑;
1:安卓要用的是Appkey和App Master Secret;不是Umeng Message Sercet;
2:必定要添加 服務器ip地址、若是是在本地測試;那直接百度下ip;把查出的ip填上便可;
添加測試設備的Device Token;這個是須要由移動端獲取的;
二:建立表
下載示例項目;安裝後會有users表和oauth_user表;
users表用來存放用戶的帳號密碼之類的;
oauth_user表用來存放移動端發送過來的Device Token;
固然;本身設計表也是能夠的;主要就是讓用戶id和Device Token關聯起來;
三:集成友盟sdk
sdk目錄:/ThinkPHP/Library/Vendor/Umeng
固然;這個sdk也是被我修改過的;具體修改了那些地方;一樣也年代久遠;沒有記錄了;
配置項:/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
函數:/Application/Common/Common/function.php
/** * 發送友盟推送消息 * @param integer $uid 用戶id * @param string $title 推送的標題 * @param integer $type 1:官方小祕書 2:個人評論 * @return boolear 是否成功 */ function umeng_push($uid,$title){ // 獲取token $device_tokens=D('OauthUser')->getToken($uid,2); // 若是沒有token說明移動端沒有登陸;則不發送通知 if (empty($device_tokens)) { return false; } // 導入友盟 Vendor('Umeng.Umeng'); // 自定義字段 根據實際環境分配;若是不用能夠忽略 $status=1; // 消息未讀總數統計 根據實際環境獲取未讀的消息總數 此數量會顯示在app圖標右上角 $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; }
調用:
umeng_push('1','測試')
本文爲白俊遙原創文章,轉載無需和我聯繫,但請註明來自白俊遙博客http://baijunyao.com