首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用laravel实现Firebase在android应用程序中发送通知

用laravel实现Firebase在android应用程序中发送通知
EN

Stack Overflow用户
提问于 2021-08-17 12:23:00
回答 2查看 1.3K关注 0票数 0

基本上,我是用laravel为我的android应用程序制作APIS,所以当管理员为他们创建新任务时,我想通知用户,我对设备令牌的生成有一点困惑,比如这将是什么过程?我已经在user表中创建了一个设备令牌字段,但是不知道如何生成设备令牌,当用户在我的应用程序上注册时,我希望将设备令牌存储在我的数据库中。这是我的通知功能

`

代码语言:javascript
运行
复制
public function sendWebNotification()
    {
        $url = 'https://fcm.googleapis.com/fcm/send';
        $FcmToken = User::whereNotNull('device_key')->pluck('device_key')->all();


         $user=User::whereNotNull('device_key')->value('name');

        $serverKey = 'AAAAqLMsLGU:APA91bF0MWybbBdXcLOV9MlS4sLeHgPgSt14xEsWOdLMf76eqvpqIFYGicI6S0TWwUVfjEkrtVOwNympmZIIATCmaYpiSknfROjzhXKjDX86bzxhvltByi3AUUfL-g2laZ9SpG4Uft8F'
        ;

        $data = [
            "registration_ids" => $FcmToken,
            "notification" => [
                "title" => "hello". $user,
                "body" => "sndjjsdjjd",
            ]
        ];
   

       $encodedData = json_encode($data);

        $headers = [
            'Authorization:key=' . $serverKey,
            '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_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
        // Disabling SSL Certificate support temporarly
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $encodedData);

        // Execute post
        $result = curl_exec($ch);

        if ($result === FALSE) {
            die('Curl failed: ' . curl_error($ch));
        }

        // Close connection
        curl_close($ch);

        // FCM response
        dd($result);
    }
}

`

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-08-17 13:40:01

在每个设备/应用程序组合(通常称为app实例)上生成一个唯一的设备令牌,这些设备令牌打算接收来自Firebase消息的消息。

如果您想要针对这些单独的应用实例,您可以将此令牌从应用程序发送到服务器端数据库,并在需要向应用程序实例发送消息时从该数据库检索它。

有关这方面的更多信息,请参见访问设备注册令牌上的Firebase文档。代码示例中的sendRegistrationToServer是将令牌发送到服务器/数据库所需实现的代码的位置持有者。

票数 0
EN

Stack Overflow用户

发布于 2021-08-17 12:36:43

除了查询Model之外,这与Laravel没有什么关系,因为Laravel通常支持通知和无数的频道;最好尝试使用FCM通知通道

代码语言:javascript
运行
复制
composer require kreait/laravel-firebase
composer require laravel-notification-channels/fcm:~2.0

这需要laravel-firebase和Google服务帐户JSON。然后还可以直接使用这些FCM类:https://firebase-php.readthedocs.io/en/stable/cloud-messaging.html

这个(奇怪的名字) "device_key“可能是客户机登录到FCM时得到的令牌。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68817309

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档