繁体   English   中英

firebase-PHP-向所有人发送通知

[英]firebase - php - send notification to everyone

我想从fcm向所有用户发送后台通知。 这是我的代码,我面临的唯一问题是必须输入令牌ID。 我需要在不定义令牌值的情况下向所有用户发送通知

这是我的代码:

    <?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;
?>

它可以正常工作并成功发送通知,但是如何向所有人发送通知?

似乎没有此类功能可以将通知发送到所有设备。

但是,使用主题可以解决您的问题。 为此,您需要在应用程序启动期间为所有用户订阅特定主题。

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

然后,您可以将通知发送到该主题,以便将通知发送给所有用户。

'to' => '/topics/your_topic', // using topic instead of token

如果我得到你的问题。

您需要订阅一个Topic ,然后才需要使用该主题。 订阅它的用户将收到通知。

文档: -

基于发布/订阅模型,FCM主题消息传递允许您将消息发送到已选择加入特定主题的多个设备。 您可以根据需要编写主题消息,然后FCM处理路由并将消息可靠地传递到正确的设备。

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

有两种向多个用户发送通知的方法。

  1. 创建一个包含所有用户的主题,并将推送发送到该主题。 示例: https//firebase.google.com/docs/cloud-messaging/android/send-multiple

  2. 发送通知给应用程序包ID。 但这甚至会将通知发送给未经身份验证的用户。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM