在進行APP開發過程中,會經常用到消息推送。對于創業型的公司如果自己去搭建消息推送服務器,時間成本,以及技術難度無疑都會增加很多。在我自己的實踐過程中,覺得百度的消息推送服務穩定性整體來說是很高的,而且接口文檔也很完善,推薦使用。
* 文中消息推送服務使用百度消息推送 SDK 3.0.0版本
* Laravel版本是:5.1.*
* PHP>5.5.9
項目地址 : baidu-pusher
為了便于多個項目中使用百度的消息推送,因此將百度消息推送封裝成為了composer包。通過簡單的安裝,即可使用。
1.安裝 在項目中的composer.json中添加如下內容
'require': { 'riverslei/baidu-pusher': '~1.0' },
然后執行 composer update
2.安裝完成后,配置 configapp.php 中的 providers 數組及 aliases 數組。
'providers' => [ /* * 第三方提供者 */ RiversleiPusherPusherServiceProvider::html' target='_blank'>class, ], 'providers' => [ /* * 第三方 */ 'Pusher' => RiversleiPusherPusher::class, ],
以上配置完成后,使用一下命令生成推送的配置文件
php artisan vendor:publish --provider=RiversleiPusherPusherServiceProvider
執行該命令后,在 config 文件夾中會增加一個配置文件 pusher.php ??梢源蜷_查看相關的配置信息。修改為自己的apikey及其他內容。
其中默認內容是用于測試的賬號的。
3.測試SDK
之前百度一直沒有提供服務端的測試代碼,一直不能進行獨立測試。這一次SDK升級后,終于弄了一個測試賬號了。大家可以試試看。以下是我根據官方的測試代碼,寫的符合Laravel的測試代碼。
首先,配置路由
Route::get('/pusher', 'TestController@pusher');
其次,創建該控制器及方法
<?phpnamespace AppHttpControllers;use Pusher;class TestController extends Controller{ public function pusher() { $channelId = '3785562685113372034'; // 消息內容. $message = array ( // 消息的標題. 'title' => 'Hi!.', // 消息內容 'description' => 'hello!, this message from baidu push service.' ); // 設置消息類型為 通知類型. $opts = array ( 'msg_type' => 1 ); // 向目標設備發送一條消息 $rs = Pusher::pushMsgToSingleDevice($channelId, $message, $opts); // 判斷返回值,當發送失敗時, $rs的結果為false, 可以通過getError來獲得錯誤信息. if($rs === false){ print_r(Pusher::getLastErrorCode()); print_r(Pusher::getLastErrorMsg()); }else{ // 將打印出消息的id,發送時間等相關信息. var_dump($rs); } echo 'done!'; }}
完成后,在瀏覽器中訪問: http://youdomain/pusher。 查看瀏覽器中的內容
出現該內容,表示已經成功了??梢栽谶m當的位置進行使用。
其他
在項目中使用消息推送時,建議將推送業務放入隊列中,不要在業務中等待消息推送完成再返回結果給APP。關于 Laravle消息隊列的使用 請參考這一篇文章。
在使用過程中,消息推送的接口請參考 百度消息推送文檔
如果你覺得該項目不錯,歡迎start, 項目地址
后續關于使用Laravel開發app接口的文章,將不斷更新。謝謝大家關注。
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。
新聞熱點
疑難解答