I am trying to make a simple test app for testing push notifications.
I have installed the plugin "phonegap-plugin-push" (https://github.com/phonegap/phonegap-plugin-push), and followed all the installation instructions.
I receive an registration id ondeviceready, and when I use the php script to send a notification to that id it returns a success response from the google api, however no notification is appearing on the mobile device.
Any suggestions on what could be wrong?
index.html
<!DOCTYPE html>
<html>
<head>
<title>Push demo</title>
<script type="text/javascript" src="cordova.js"></script>
<script type="text/javascript">
document.addEventListener("deviceready", onDeviceReady, false);
function onDeviceReady() {
var push = PushNotification.init({ "android": {"senderID": "my sender id"}});
push.on('registration', function(data) {
console.log(data.registrationId);
});
push.on('notification', function(data) {
console.log(data.title + " Message: " + data.message);
});
push.on('error', function(e) {
console.log(e);
});
}
</script>
</head>
<body>
<h1>Push Notification Example</h1>
</body>
</html>
pushTest.php
<?php
define('API_ACCESS_KEY', 'secret key here');
$registrationIds = array(
'long device id here'
);
$msg = array(
'message' => 'Test msg',
'title' => 'Test title',
'subtitle' => 'Test subtitle',
'vibrate' => 1,
'sound' => 1
);
$fields = array(
'registration_ids' => $registrationIds,
'data' => $msg
);
$headers = array(
'Authorization: key=' . API_ACCESS_KEY,
'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;
?>
PHP response
{"multicast_id":xxxxxx,"success":1,"failure":0,"canonical_ids":0,"results":[{"message_id":"0:xxxxxxxxxx"}]}