天天看點

php內建極光推送,Swift - JPush極光推送的使用2(PHP調用服務接口給所有人發推送)...

在前文中:Swift - JPush極光推送的使用1(配置、簡單的推送測試樣例)。介紹了移動用戶端如何配置使用 JPush SDK。當時是登入到極光控制台,來發送推送消息進行測試的。但通常在實際項目中,我們會有專門的應用伺服器來管理所有的使用者,裝置、消息等。

極光提供了完善的 REST API 接口,以及各個伺服器語言專用的 SDK(JAVA、Python、C#、PHP、Nodejs、Ruby)。我們伺服器背景隻要調用一下相應的接口就可以進行消息推送了。

下面示範背景使用 PHP SDK,給所有人發送消息。(用戶端還是使用前文那個,這裡就不再說明了。)

1,使用PHP SDK推送廣播消息

雖然我們使用REST API來推送也是可以的,但使用 JPush PHP SDK的話會更加友善快捷。

php內建極光推送,Swift - JPush極光推送的使用2(PHP調用服務接口給所有人發推送)...

(2)将壓縮包解壓,裡面除了接口檔案外還提供了樣例代碼。我們使用時,隻需要把壓縮包裡的 src 檔案夾,以及 autoload.php 檔案上傳到伺服器項目目錄下。(我這裡是放到 JPush檔案夾下。)

php內建極光推送,Swift - JPush極光推送的使用2(PHP調用服務接口給所有人發推送)...

(3)在需要使用 JPush 的檔案中,引入“autoload.php”即可。

require 'JPush/autoload.php';

(4)下面是一個完整的頁面代碼

注意:setOptions 方法裡的第四個參數。用來指定 APNs 是否是生産環境。true 表示推送到生産環境,false 表示推送到開發環境。

//引入代碼

require 'JPush/autoload.php';

use JPush\Client as JPush;

if(isset($_POST["message"])){

//初始化

$app_key = "7b528331738ec719165798fd";

$master_secret = "32da4e2c06ac7b55da2c9228";

$client = new JPush($app_key, $master_secret);

//簡單的推送樣例

$result = $client->push()

->setPlatform('ios', 'android')

->addAllAudience()

->setNotificationAlert($_POST["message"])

->options(array(

"apns_production" => true //true表示發送到生産環境(預設值),false為開發環境

))

->send();

echo 'Result=' . json_encode($result);

}

?>

推送廣播通知

2,運作測試

(1)将上面的 php 頁面上傳到伺服器并通路,頁面顯示如下:

php內建極光推送,Swift - JPush極光推送的使用2(PHP調用服務接口給所有人發推送)...

(2)在輸入框中填寫需要發送的通知消息,點選“推送廣播通知”按鈕。即可調用JPust API接口,将消息推送到所有的裝置上。同時推送完畢後,頁面上會顯示接口調用的傳回結果。

php內建極光推送,Swift - JPush極光推送的使用2(PHP調用服務接口給所有人發推送)...

(3)推送完畢後,手機這邊也成功地顯示出通知消息。

php內建極光推送,Swift - JPush極光推送的使用2(PHP調用服務接口給所有人發推送)...

3,更完整的推送示例

上面示範的隻是 php 調用 sdk 的一個最簡單的樣例。其實 JPush SDK提供的 API 接口配置還是很豐富的,比如下面是一個完整的推送示例。其中包含指定 Platform,指定 Alias,Tag,指定 iOS,Android notification,指定 Message 等。

(對于向指定的 Alias、Tag 裝置推送通知,後面我還會寫兩篇相關文章來說明。)

//簡單的推送樣例

$result = $client->push()

->setPlatform('ios', 'android')

->addAlias('alias1')

->addTag(['tag1', 'tag2'])

//->addAllAudience()

->setNotificationAlert('Hello, JPush')

->iosNotification('hello', [

'sound' => 'sound',

'badge' => '+1',

'extras' => [

'key' => 'value'

]

])

->androidNotification('hello', [

'title' => 'title',

'extras' => [

'key' => 'value'

]

])

->message('Hello JPush', [

'title' => 'Hello',

'content_type' => 'text',

'extras' => [

'key' => 'value'

]

])

->options(array(

"apns_production" => true,

'sendno' => 100,

'time_to_live' => 100,

//'big_push_duration' => 5

//'override_msg_id' => 100,

))

->send();