使用Google Cloud Messaging (GCM),PHP 开发Android Push Notifications (安卓推送通知)
什么是GCM?
Google Cloud Messaging (GCM) 是Google提供的一个服务,用来从服务端向安卓设备发送推送通知。
GCM分为客户端和服务端开发。
这里我们只介绍服务端开发。其实过程非常简单,只需利用PHP发送POST数据。
有两个关键地方需要获得一个是API Key
一个是Device ID 这个可以从安卓客户端开发者获得。
class GCM { public $api_key = "AIzaSyAU3wZs9raik-mHQ"; function __construct() { } /** * Sending Push Notification */ public function send_notification($registatoin_ids, $message) { // Set POST variables $url = 'https://android.googleapis.com/gcm/send'; $fields = array( 'registration_ids' => $registatoin_ids, 'data' => $message, ); $headers = array( 'Authorization: key=' . $this->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); return $result; } }
运行程序
$device_id = "APA91bFFBkpObz-rK"; $registatoin_ids = array($device_id); $message = array("data" => "test content from finley"); $gcm = new GCM(); $result = $gcm->send_notification($registatoin_ids, $message); echo $result;
参考:
http://developer.android.com/google/gcm/server.html#params
http://www.androidhive.info/2012/10/android-push-notifications-using-google-cloud-messaging-gcm-php-and-mysql/