ho cercato di implementare Google Cloud Messaging (GCM) periOS
nella mia app. Ho provato i codici forniti sul pod
GcmExampleXcode Project
e scritto uno script PHP
la volontà inviare la richiesta via PHP cURL
.Risultato di InternalServerError nell'inviare Push Notification remoto per iOS che utilizzano GCM in PHP
mio PHP
codice è il seguente:
gcmPush(
"kU6GAbdQEg0:APA91bGSF42WITzubJ9lwQ2qUqL4ETtZfQEOthazc4tP1CRhxx8tKSRChwgtFK37-kt7RjG2P_Ncj2bDOONpPVsYkjxCNi3NDhMNWSkJ7pnlR83jdbMJfOKlD1CPXCgAvZjbwpzdeiTa",
"This is only a test from GCM for iOS.",
"PHP test"
);
function gcmPush($GCM_regID, $message, $title) {
$GOOGLE_API_KEY = "AIzaSyAd8pw7_J8i-FPswnhUMkFCDHtufSCFFTc";
$url = 'https://android.googleapis.com/gcm/send';
$fields = array(
'to' => $GCM_regID,
'notification' => array(
'sound' => 'default',
'badge' => '1',
'body' => $message,
'title' => $title
)
);
$headers = array(
'Authorization: key=' . $GOOGLE_API_KEY,
'Content-Type: application/json'
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($fields));
$result = curl_exec($ch);
echo "\r\n";
if ($result === FALSE) {
die('Failed: ' . curl_error($ch) . "\r\n");
} else {
echo "Success\r\n";
}
curl_close($ch);
}
La richiesta è riuscita, tuttavia il risultato dal server Google GCM contiene quanto segue:
{"multicast_id":6164898138439370127,"success":0,"failure":1,"canonical_ids":0,"results":[{"error":"InternalServerError"}]}
È t qui qualcosa non va con la chiave dell'API di Google ? Ho provato questo script per inviare la notifica remota allo GcmExample.xcworkspace
e ha funzionato. Mi piacerebbe sapere come risolvere questo problema.
@adjuremonds Ho già provato quello sui gruppi androide-GCM sono stati suggeriti, ma nessuno di loro opere. –
Grazie. Rinnovato i certificati di notifica push di iOS e ha funzionato. – atulkhatri