Я передаю серверу псевдоним, а затем я получаю идентификатор регистрации по нику из моей базы данных.gcm неверная ошибка регистрации
GOOGLE_API_KEY - это ключ сервера, созданный google gcm api.
это PHP код сервера:
<?php
require_once("db_config.php");
$con = mysqli_connect(DB_SERVER, DB_USER, DB_PASSWORD) or
die(mysqli_error());
$db = mysqli_select_db($con, DB_DATABASE) or die(mysqli_error()) or die(mysqli_error());
$nicknames = $_POST['nicknames'];
$message = $_POST['message'];
$registration_ids = mysqli_query($con, "SELECT regId FROM Users WHERE nickname = '$nicknames'");
$numOfRows = mysqli_num_rows($registration_ids);
$row=mysqli_fetch_assoc($registration_ids);
printf ("%s\n",$row["regId"]);
if($numOfRows > 0) {
$url = 'https://gcm-http.googleapis.com/gcm/send';
//$url = 'https://android.googleapis.com/gcm/send';
$fields = array('registration_ids' => array($registration_ids), 'data' => array("message" => $message),);
$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);
// Disabling SSL Certificate support temporarly
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;
}
else {
echo 'false';
}
?>
после того, как я отправить сообщение, я получаю:
{ "multicast_id": 4772095405461687926, "успех": 0, "неудача": 1, «canonical_ids»: 0, «results»: [{«error»: «InvalidRegistration»}]}]
Я также напечатал себе идентификатор регистра, который я получаю из своей базы данных, и он соответствует идентификатор регистрации устройства.
ty для вашей помощи.
как я уже сказал, я проверил, и идентификатор регистрации моего устройства соответствует идентификатору регистрации, который я отправляю на сервер gcm. – Ofek
Документация - это предлагаемое решение. Пожалуйста, еще раз проверьте, есть ли место где-то. Удачи! – gerardnimo