2016-10-27 3 views
-1

Hier möchte ich Benachrichtigungen für Handys senden. Ich versuche so, ich bekomme Fehler wie folgt.So lösen Sie dieses Problem Ich möchte Benachrichtigungen senden


{ "multicast_id": 9154934162102180737 "Erfolg": 0, "Fehler": 1, "canonical_ids": 0, "Ergebnisse": [{ "Fehler": "MismatchSenderId"}]}


ich kann nicht verstehen, was ist API_ACCESS_KEY

<?php 
// API access key from Google API's Console 
define('API_ACCESS_KEY', 'xxxxxx'); 
//$registrationIds = array($_GET['id']); 
$registrationIds = array("APA91bEbAxYQZuglicZ2Ea5c26MtK07BYyunv14Us5INdjNvy3gy0Anq6V09dv2j21g7n_JERDumynuOp4l9GYA4RUGRjRZb6KJ4JYg9qPN9dlytPsgPKctIMhxfHFQSr9FfDjobZUJU"); 
// prep the bundle 
$msg = array 
(
    'message' => 'here is a message. message', 
    'title'  => 'This is a title. title', 
    'subtitle' => 'This is a subtitle. subtitle', 
    'tickerText' => 'Ticker text here...Ticker text here...Ticker text here', 
    'vibrate' => 1, 
    'sound'  => 1, 
    'largeIcon' => 'large_icon', 
    'smallIcon' => 'small_icon' 
); 
$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; 
+0

Problem ist, dass Sie die Registrierungs-ID (GCM) nicht registriert sind. Sie müssen die von diesem generierte GCM-ID übergeben. Bitte überprüfen Sie die Eingabe. Das gültige GCM-ID-Problem wird nicht erfüllt. –

+0

GCM ID bedeutet Was, wie man sich anmeldet. –

+0

$ registrationIds ist meine Handynummer eindeutige Token-ID –

Antwort

0

@SujiniR Zuerst Sie Ihre App in Google Cloud Messaging registrieren und API Access Key bekommen und ID senden, Links:

https://developers.google.com/cloud-messaging/registration

Dann speichern Sie Ihre api Zugriffsschlüssel in:

define('API_ACCESS_KEY', 'api_key_recieved_from_google_by_above_process'); 

Dann SenderID in Applikation für Android verwenden RegistrationId zu erhalten, kopieren oder dass registrationId an den Server senden und verwenden Sie es in:

$registrationIds = array(registrationID); 
0

Ausgehend von unserer Diskussion in den Kommentaren scheint es, dass Sie die falsche Absender-ID verwendet haben. Sie sollten immer die entsprechende Sender-ID verwenden, für die das Registrierungs-Token registriert wurde. Ihre Client-App kann von mehreren Absender-IDs empfangen werden, solange es sich um gebunden ist. Sonst gibt es eine MismatchSender:

Ein Registrierungs-Token ist an eine bestimmte Gruppe von Absendern gebunden. Wenn sich eine Clientanwendung für GCM registriert, muss sie angeben, welche Absender Nachrichten senden dürfen. Sie sollten eine dieser Absender-IDs verwenden, wenn Sie Nachrichten an die Client-App senden. Wenn Sie zu einem anderen Absender wechseln, funktionieren die vorhandenen Registrierungstoken nicht.

+0

Mr @Al Sag mir, welchen Fehler ich gemacht habe Schlüssel SERVER KEY oder Handy REGISTER KEY –

+0

@SujiniR Schwer zu sagen mit den Details, die Sie angegeben haben. Welche Client-App verwenden Sie? –

Verwandte Themen