繁体   English   中英

GCM Phonegap PHP推送通知Android

[英]GCM Phonegap PHP Push Notification Android

我正在使用Cordova(Phonegap),Google Cloud Messaging开发我的个人应用程序,并使用PHP作为服务器。 我希望将通知运行到许多设备,但是我的问题是,我无法将通知从我的PHP脚本发送到其他设备。 如果我在自己的设备上使用自己的注册ID,并且从终端运行PHP推送通知,则只有我的设备提示该通知。 我的问题是,如果我想查看$gcm_header所有注册ID并在$registrationIds列出,我是否需要注册到其他设备? 因为此时此刻,我仅在自己的设备上运行该应用程序。 下面是我的代码:

<?php
$gcm_header = 'GOOGLE-API';
$registrationIds = array($gcm_header);
//$registrationIds = array('my-regid-from-my-actual-device');

$msg = array('message' => 'Test message',
    'title' => 'Test title',
    'subtitle' => 'test subtitle',
    'tickleText' => 'test tickleText',
    'vibrate' => 1,
    'sound' => 1);

$fields = array('registration_ids' => $registrationIds, 'data' => $msg);

$headers = array('Authorization: key='. $gcm_header, 'Content-Type: application/json');

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, 'https://android.googleapis.com/gcm/send');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($fields));

$result = curl_exec($ch);
curl_close($ch);

echo $result;?>

您需要具有一个数据库表,该表可以存储所有已注册用户的注册ID。 完成此操作后,您的服务器将能够向该表中唯一的注册ID所注册的所有设备发送推送通知。 您可以编写一个register.php文件,其中包含用于注册用户并将其存储到数据库中的代码。

register.php

<?php

// response json
$json = array();

/**
 * Registering a user device
 * Store reg id in users table
 */
if (isset($_POST["name"]) && isset($_POST["email"]) && isset($_POST["regId"])) {
    $name = $_POST["name"];
    $email = $_POST["email"];
    $gcm_regid = $_POST["regId"]; // GCM Registration ID
    // Store user details in db
    include_once './db_functions.php';
    include_once './GCM.php';

    $db = new DB_Functions();
    $gcm = new GCM();

    $res = $db->storeUser($name, $email, $gcm_regid);

    $registatoin_ids = array($gcm_regid);
    $message = array("product" => "shirt");

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

    echo $result;
} else {
    // user details missing
}
?>

有关更详细的描述,您可以看一下本教程

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM