使用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/

posted @ 2014-06-16 21:32  飞凡123  阅读(733)  评论(0编辑  收藏  举报