Я использую API FCM HTTP v1 для отправки уведомлений на мобильные устройства. Серверная часть написана с использованием PHP, а я использую клиентскую библиотеку Google API и служебную учетную запись для авторизации моих запросов в FCM. Но я сталкиваюсь с некоторыми странными проблемами, такими как отправка уведомлений на все устройства Android, но fcm возвращает 401 несанкционированную ошибку для устройств iOS. Кроме того, я проверил, используя свое собственное устройство iOS, но fcm всегда возвращает 200 OK, когда я использую свое собственное устройство iOS. Я так запутался, связана ли проблема с моим кодом или какой-либо конфигурацией на мобильном устройстве. Вот как я отправляю уведомления.
$client = new Google_Client();
$client->useApplicationDefaultCredentials();
$client->addScope('https://www.googleapis.com/auth/firebase.messaging');
$httpClient = $client->authorize();
$message = [
"message" =>
[
"token" => $device_token,
"notification" =>
[
"body" => $body,
"title" => "xxxxx"
],
"apns" =>
[
"payload" =>
[
"aps" =>
[
"category" => "NEW_MESSAGE_CATEGORY",
"alert" => [
"body" => $body
],
"badge" => 3,
"sound" => "default",
"chat" => 2
]
]
]
]
];
$response = $httpClient->post("https://fcm.googleapis.com/v1/projects/xxxx-123/messages:send", ['json' => $message]);
Что я делаю не так при авторизации? Пожалуйста помоги. Файл учетной записи службы уже добавлен в переменную env GOOGLE_APPLICATION_CREDENTIALS.