2015-06-10 25 views
1

我成功地發送了我的Android用戶使用PHP的GCM推送通知,但我想爲我的推送通知設置過期日期,以防萬一用戶在一週內沒有互聯網連接,它會沒有收到舊的推送通知。 我如何實現它。GCM設置推送通知的到期日期

謝謝。

這是PHP代碼:

private $GOOGLE_API_KEY = "XXXXX"; 

    public function send($registration_id, $data) { 
     // include config 
     // Set POST variables 
     $url = 'https://android.googleapis.com/gcm/send'; 
     $fields = array(
      'registration_ids' => $registration_id, 
      'data' => $data, 
     ); 
     $headers = array(
      'Authorization: key=' . $this->GOOGLE_API_KEY, 
      'Content-Type: application/json' 
     ); 
     // Open connection 
     $ch = curl_init(); 
     // Set the url, number of POST vars, POST data 
     curl_setopt($ch, CURLOPT_URL, $url); 
     curl_setopt($ch, CURLOPT_POST, true); 
     curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); 
     curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
     // Disabling SSL Certificate support temporarly 
     curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
     curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($fields)); 
     // Execute post 
     $result = curl_exec($ch); 
     if ($result === FALSE) { 
      die('Curl failed: ' . curl_error($ch)); 
     } 
     // Close connection 
     curl_close($ch); 
     // echo $result; 
    } 

回答

4

有一個參數time_to_live您正在發送時設置。值是以秒爲單位(下面僅一分鐘)

$fields = array(
     'registration_ids' => $registration_id, 
     'data' => $data, 
     'time_to_live' => 60 
    ); 

可以使用time_to_live參數在發送請求來指定消息的最大壽命。該參數的值必須是從0到2419200秒的持續時間,它對應於GCM將存儲並嘗試傳遞消息的最長時間段。不包含此字段的請求默認爲4周的最長期限。

here

+1

感謝這正是我需要的,但可能你正確的東西,時間是以秒不分鐘,根據文檔:「該參數指定的時間(以秒爲單位)的消息應保存在GCM存儲「 – Moussawi7

+0

當然是真的!我編輯了我的答案:) – snachmsm

1

在您的推送通知發送數據的日期和時間,並在應用程序檢查創建通知該日之前的時間。