Reputation: 13267
I am successfully sending GCM push notifications for my android users using PHP, but i want to set expiration date for my push notifications so in case the user has no internet connection for 1 week, it will not receive the old push notifications. How i can achieve it.
Thank you.
This is the php code:
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;
}
Upvotes: 2
Views: 4260
Reputation: 19223
there is a param time_to_live
which you are setting while sending. value is in seconds (below one minute only)
$fields = array(
'registration_ids' => $registration_id,
'data' => $data,
'time_to_live' => 60
);
You can use the time_to_live parameter in the send request to specify the maximum lifespan of a message. The value of this parameter must be a duration from 0 to 2,419,200 seconds, and it corresponds to the maximum period of time for which GCM will store and try to deliver the message. Requests that don't contain this field default to the maximum period of 4 weeks.
more here
Upvotes: 8
Reputation: 1148
In your push notification data send date and time and In app check that date time before creating notification.
Upvotes: 1