Android: message d'erreur “incompatibilité de l'id de l'expéditeur”, tout en poussant la notification à l'appareil android si PHP et GCM

je suis en train d'envoyer une notification sur mon téléphone via mon .page php...
tout est mis en place correctement, mais j'obtiens l'erreur:

{"multicast_id":7751536172966571167,"success":0,"failure":1,"canonical_ids":0,"results":[{"error":"MismatchSenderId"}]}

je ne sais pas pourquoi, parce que l'id de l'expéditeur est en droit, l'api aussi (j'ai essayé la clé du serveur et le navigateur clé, juste pour être sûr).

je ne sais vraiment pas où je me trompe!

dans mon application j'ai seulement l'id de l'expéditeur et tout s'est bien passé, dans mon serveur, j'ai eu la clé pour le navigateur (maintenant):

<?php require_once("../pi_classes/commonSetting.php");
include('../pi_classes/User.php');
ini_set("display_errors",1);
class GCM{
function __construct(){}
public function send_notification($registatoin_ids,$message){
//GOOGLE API KEY
define("GOOGLE_API_KEY","xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx");
$url="https://android.googleapis.com/gcm/send";
$fields=array(
"registration_ids"=>$registatoin_ids,
"data"=>$message,
);
var_dump($fields);
$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_RETURNTRANSFER,true);
curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,false);
curl_setopt($ch,CURLOPT_POSTFIELDS,json_encode($fields));
$result=curl_exec($ch);
if($result===FALSE){
die("Curl failed: ".curl_error($ch));
}
curl_close($ch);
echo $result;
}
}
//======================
//=INVIA LE NOTIFICHE AGLI UTENTI =
//======================
$messaggio="Ciao, sono una notifica!";
$pushCounter=0;
$registatoin_ids=array();
$result=mysql_query("SELECT android_regi_id FROM user_details");
while($row=mysql_fetch_array($result)){
$token=$row["android_regi_id"];
if($token!=""){
$registatoin_ids[]=$token;
$pushCounter++;
}
}
if($pushCounter>0){
$gcm=new GCM();
$message=array("price"=>$messaggio);
$result_android=$gcm->send_notification($registatoin_ids,$message);
echo $result_android;
}
à cause de l'id de l'expéditeur de l'appareil est alors différent du serveur de l'id de l'expéditeur.vous devez utiliser le même serveur de l'id de l'expéditeur en tant que périphérique d'id de l'expéditeur
? sur les périphériques, j'ai mis ceci: cloud.google.com/console/project/yyyyyyyyyyyyyyyy/apiui/api/... (uniquement le yyyyyyyyyyyyyyyy). donc, ce doit être ok
l'utilisateur code.google.com/apis/console/b/0/?noredirect&pli=1#du projet:SENDER_KEY:accès
? quoi? je ne te comprends pas. ils ont dit ceci: /** * Remplaçant, vous propre ID de l'expéditeur ici. C'est le numéro de projet que vous avez obtenu * à partir de l'API de la Console, comme décrit dans "prise en main." */ String SENDER_ID = "Votre-Sender-ID";
vous avez obtenu votre id de l'expéditeur où j'ai écris SEDNER_KEY dans votre projet google Url

OriginalL'auteur D Ferra | 2014-01-15