starałem się wdrożyć Google Cloud Messaging (GCM) dla iOS
w mojej aplikacji. Próbowałem kody przewidziane na pod
GcmExampleXcode Project
i napisał PHP
skrypt wyśle żądanie poprzez PHP cURL
.Wynik InternalServerError w wysyłaniu zdalnego powiadamiania Prześlij na iOS z wykorzystaniem GCM w PHP
Moja PHP
kod jest w następujący sposób:
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);
}
Żądanie jest udany, jednak wynik z serwera Google GCM zawiera następujące elementy:
{"multicast_id":6164898138439370127,"success":0,"failure":1,"canonical_ids":0,"results":[{"error":"InternalServerError"}]}
To t tutaj coś nie tak z kluczem Google API ? Próbowałem tego skryptu, aby wysłać zdalne powiadomienie do GcmExample.xcworkspace
i zadziałało. Chciałbym wiedzieć, jak rozwiązać ten problem.
@adjuremonds Próbowałem już co na Android GCM grup zostały zasugerowane, jednak żaden z nich nie działa. –
Dzięki. Odnowiono certyfikaty powiadomień push systemu iOS i zadziałało. – atulkhatri