Невозможно отправить уведомление группе с помощью кнопки уведомления, даже если это возможно через regId

Я сделал некоторый php-код, и я смог отправлять уведомления на устройства с помощью regId.

Мне также удалось создать группу regId, успешно получив уведомление_и_и_у_и_и_и_и_и_и_и_и_и_и_и_и_и_и_и_и_и_и_и_и_оооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооо

Но я не могу отправлять уведомления группе. Я попытался использовать тот же метод для отправки уведомления, но вместо использования regId я использую message_key, который я получил от GCM при создании группы, но этот подход не сработал, он дает мне ошибку NotRegistered. Если я попытаюсь зарегистрироваться с тем же уведомлением_key_name, то GCM скажет, что он уже зарегистрирован.

Я не уверен, должен ли я отправить его другим методом или если я что-то делаю неправильно.

Ниже приведен код, который я использую.

<?php class GCM { const GOOGLE_API_KEY= " *** MY API KEY ***"; // Place your Google API Key const PROJECT_KEY= " *** MY PROJECT KEY ***"; function __construct() { } /** * Sending Push Notification */ public function send_notification($registatoin_ids, $message) { $url = 'https://android.googleapis.com/gcm/send'; $fields = array( 'registration_ids' => $registatoin_ids, 'data' => $message ); $headers = array( 'Authorization: key=' . self::GOOGLE_API_KEY, 'Content-Type: application/json' ); // Open connection $ch = curl_init(); // Set the url, number of POST vars, POST data 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)); } // Close connection curl_close($ch); echo $result; } public function requestNotificationKeyFromGCM($registatoin_ids, $username) { //Google cloud messaging GCM-API url $url = 'https://android.googleapis.com/gcm/notification'; $request = array( 'operation' => 'create', 'notification_key_name' => $username, 'registration_ids' => $registatoin_ids, ); $headers = array( 'Authorization: key=' . self::GOOGLE_API_KEY, 'project_id: ' . self::PROJECT_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_VERIFYHOST, 0); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($request)); $result = curl_exec($ch); if ($result === FALSE) { die('Curl failed: ' . curl_error($ch)); } curl_close($ch); echo $result; } } ?> 

Related of "Невозможно отправить уведомление группе с помощью кнопки уведомления, даже если это возможно через regId"

У меня были подобные проблемы при попытке отправить gcm с помощью ключа уведомления. В документации есть проблема. Вместо того, чтобы использовать:

 curl -vvv -X POST --header "Content-Type: application/json" --header "project_id: <YOUR-PROJECT-ID>" --header "Authorization: key=<YOUR-PROJECT-SECRET-KEY>" --data @- "https://android.googleapis.com/gcm/send" << EOF { "registration_ids": ["<REGISTRATION-ID-FROM-DEVICE>"], "data": {}, } EOF 

Вы должны использовать:

 curl -vvv -X POST --header "Content-Type: application/json" --header "project_id: <YOUR-PROJECT-ID>" --header "Authorization: key=<YOUR-PROJECT-SECRET-KEY>" --data @- "https://android.googleapis.com/gcm/send" << EOF { "to": "<NOTIFICATION-ID>", "data": {}, } EOF 

Вы можете увидеть больше в своем блоге: https://medium.com/appunite-edu-collection/d7df385b0ff4

Я следил за документацией из Документации Google (я нажимаю как на iOS, так и на Android).

 { "to": "your_token_ID", "data": { "hello": "This is a Firebase Cloud Messaging Device Group Message!", } } 

Но он не работает, поэтому я попытался:

 { "to": "your_token_ID", "notification": { "sound": "default", "gcmSandbox": "true", "badge": 1, "title" : "Push Title", "body": "Push Body" } } 

Этот метод работает для меня, надеюсь, что он помогает кому-то другому.