firebase - php - отправлять уведомления всем - PullRequest
0 голосов
/ 03 октября 2018

Я хочу отправить фоновое уведомление от fcm всем моим пользователям.Это мой код, единственная проблема, с которой я столкнулся, заключается в том, что я должен поставить идентификатор токена.Мне нужно отправить уведомление всем моим пользователям без определения значений токенов

Это мой код:

    <?php
define('API_ACCESS_KEY','Api');
 $fcmUrl = 'https://fcm.googleapis.com/fcm/send';
 $token='token';

     $notification = [
            'title' =>'title',
            'body' => 'body of message.',
            'icon' =>'myIcon', 
            'sound' => 'mySound'
        ];
        $extraNotificationData = ["message" => $notification,"moredata" =>'dd'];

        $fcmNotification = [
            //'registration_ids' => $tokenList, //multple token array
            'to'        => $token, //single token
            'notification' => $notification,
            'data' => $extraNotificationData
        ];

        $headers = [
            'Authorization: key=' . API_ACCESS_KEY,
            'Content-Type: application/json'
        ];


        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL,$fcmUrl);
        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($fcmNotification));
        $result = curl_exec($ch);
        curl_close($ch);


        echo $result;
?>

Он работает нормально и успешно отправляет уведомления, но как я могу отправить уведомлениевсе

Ответы [ 3 ]

0 голосов
/ 03 октября 2018

Похоже, что нет такой функции для отправки уведомлений на все устройства.

Однако, есть решение для вашей проблемы, используя темы.Для этого вам нужно будет подписать всех пользователей на определенную тему во время запуска приложения.

FirebaseMessaging.getInstance().subscribeToTopic("your_topic");

Затем вы можете отправить уведомление по этой теме, чтобы уведомление было отправлено всем пользователям.

'to' => '/topics/your_topic', // using topic instead of token
0 голосов
/ 03 октября 2018

Существует два способа отправки уведомления нескольким пользователям.

  1. Создайте тему со всеми пользователями в ней и отправьте push-сообщение в эту тему.Пример: https://firebase.google.com/docs/cloud-messaging/android/send-multiple

  2. Отправить уведомление приложению с идентификатором пакета.Но это отправит уведомление даже не авторизованному пользователю.

0 голосов
/ 03 октября 2018

Если я получу ваш вопрос.

Вам нужно подписаться на Topic, а затем вам просто нужно использовать эту тему.Пользователи, которые подписались на него, получат уведомление.

Документы: -

В зависимости от модели публикации / подписки, обмен сообщениями в темах FCM позволяет отправлять сообщения на несколько устройств, которые выбрали определенную тему.По мере необходимости вы создаете тематические сообщения, а FCM обеспечивает надежную маршрутизацию и доставку сообщений на нужные устройства.

https://firebase.google.com/docs/cloud-messaging/android/topic-messaging

...