在進行app開發過程中,會經常用到消息推送。對于創業型的公司如果自己去搭建消息推送服務器,時間成本,以及技術難度無疑都會增加很多。在我自己的實踐過程中,覺得百度的消息推送服務穩定性整體來說是很高的,而且接口文檔也很完善,推薦使用。
* 文中消息推送服務使用百度消息推送 SDK 3.0.0版本
* laravel版本是:5.1.* ? ? (推薦學習:laravel開發)
* PHP>5.5.9
為了便于多個項目中使用百度的消息推送,因此將百度消息推送封裝成為了composer包。通過簡單的安裝,即可使用。
1.安裝 在項目中的composer.json中添加如下內容
"require":?{ ????????"riverslei/baidu-pusher":?"~1.0" ????},
然后執行?composer update
2.安裝完成后,配置?configapp.php?中的?providers?數組及?aliases?數組。
????'providers'?=>?[ ????????/* ?????????*?第三方提供者 ?????????*/ ????????RiversleiPusherPusherServiceProvider::class, ????], ????'providers'?=>?[ ????????/* ?????????*?第三方 ?????????*/ ????????'Pusher'????=>?RiversleiPusherPusher::class, ????],
以上配置完成后,使用一下命令生成推送的配置文件
php?artisan?vendor:publish?--provider=RiversleiPusherPusherServiceProvider
執行該命令后,在 config 文件夾中會增加一個配置文件 pusher.php 。可以打開查看相關的配置信息。修改為自己的apikey及其他內容。
其中默認內容是用于測試的賬號的。
3.測試SDK
之前百度一直沒有提供服務端的測試代碼,一直不能進行獨立測試。這一次SDK升級后,終于弄了一個測試賬號了。大家可以試試看。以下是我根據官方的測試代碼,寫的符合Laravel的測試代碼。
首先,配置路由
Route::get('/pusher',?'TestController@pusher');
其次,創建該控制器及方法
<?php namespace 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。 查看瀏覽器中的內容
出現該內容,表示已經成功了。可以在適當的位置進行使用。
? 版權聲明
文章版權歸作者所有,未經允許請勿轉載。
THE END