如何使用php在android studio中使用GCM实现推送通知?

时间:2015-11-27 12:31:10

标签: php android push-notification server google-cloud-messaging

我正在尝试使用GCM在我的应用中收到通知。我正在使用android工具工具,我尝试了很多教程。其中大多数使用eclips工具完成。 最后,我尝试了这一个,
       http://rmarcejaeger.com/2015/09/18/tutorial-how-to-implement-push-notifications-using-google-cloud-messaging-for-android-part-1-client-app/#comment-576070,     https://github.com/googlesamples/google-services/tree/master/android/gcm

我使用上面的教程完成了android客户端部分。但问题是,我需要在php中设置应用服务器,通过GCM连接我的应用程序。我不知道是否有可能。我尝试了以下链接,       https://developers.google.com/cloud-messaging/server

但我无法获得更多。所以请任何人建议我更好的解决方案。

2 个答案:

答案 0 :(得分:3)

答案 1 :(得分:1)

首先,您需要从Console创建浏览器密钥。

这是您需要为发送通知添加的代码GOOGLE_API_KEY是您从控制台创建的密钥。

<?php
 
class GCM {
 
    //put your code here
    // constructor
    function __construct() {
         
    }
 
    /**
     * Sending Push Notification
     */
    public function send_notification($registatoin_ids, $message) {
        // include config
        include_once './config.php';
 
        // Set POST variables
        $url = 'https://android.googleapis.com/gcm/send';
 
        $fields = array(
            'registration_ids' => $registatoin_ids,
            'data' => $message,
        );
 
        $headers = array(
            'Authorization: key=' . 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;
    }
 
}
 
?>

现在使用GCM类的这种方法,您可以通过调用其方法向设备发送通知。 传递reg.id,这是您从Android设备获得的令牌ID以及您想要传递的消息。

$gcm = new GCM();
$result = $gcm->send_notification($registatoin_ids, $message);
echo $result;