Push-уведомление Firebase Android с использованием HTTP V1, выдающее ошибку SENDER_ID_MISMATCHAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Push-уведомление Firebase Android с использованием HTTP V1, выдающее ошибку SENDER_ID_MISMATCH

Сообщение Anonymous »

Я пытаюсь интегрировать push-уведомления Firebase Android с помощью HTTP V1 в Codeigniter 4 (PHP). Согласно последней документации, я могу получить токен доступа к носителю, используя файл JSON учетных данных, который загружается из учетной записи Firebase. И, используя этот токен доступа, когда я пытаюсь отправить push-уведомление на токен устройства, я получаю сообщение об ошибке «SENDER_ID_MISMATCH». Ниже приведен код PHP и ответ -

Код: Выделить всё

        function test_android_push_notification() {
$scope = 'https://www.googleapis.com/auth/firebase.messaging';
$appName = 'XXXXX_App';

$client = new \Google\Client();
$client->setAuthConfig('PATH_OF_THE_JSON_FILE.json');
$client->useApplicationDefaultCredentials();
$client->setScopes($scope);
$client->setApplicationName($appName);
$access_token = $client->fetchAccessTokenWithAssertion();
$bearerToken = $access_token['access_token']; // BEARER TOKEN RECEIVED

//HTTP V1 API end-point
$url = 'https://fcm.googleapis.com/v1/projects/PROJECT_NAME_HERE/messages:send';

$token = trim($this->request->getPost('token')); // DEVICE TOKEN
$data = array("message" => array("token" => $token, "data" => array("score" => "83", 'time' => "15:30"), "android" => array("direct_boot_ok" => true)));
//header with content_type api key
$headers = array(
'Content-Type:application/json',
'Authorization: Bearer ' . $bearerToken
);
//CURL request to route notification to FCM connection server (provided by Google)
$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_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
$result = curl_exec($ch);
if ($result === FALSE) {
die('Oops! FCM Send Error: ' . curl_error($ch));
} else {
echo '-----Notification Sent';
}
curl_close($ch);
return $result;
}
----- Ниже приведен ответ ----

Код: Выделить всё

  "error": {
"code": 403,
"message": "SenderId mismatch",
"status": "PERMISSION_DENIED",
"details": [
{
"@type": "type.googleapis.com/google.firebase.fcm.v1.FcmError",
"errorCode": "SENDER_ID_MISMATCH"
}
]
}
}
Как указано в коде ошибки, идентификатор отправителя не совпадает, я не использую параметр идентификатора отправителя нигде в своем коде, и его также нет в JSON учетных данных. В чем может быть причина и как решить проблему?

Подробнее здесь: https://stackoverflow.com/questions/791 ... r-id-misma
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»