php - 使用 api 时未收到 Firebase 消息

标签 php firebase firebase-cloud-messaging firebase-notifications

我正在通过 php 使用 Firebase API,并使用 JSON 格式发送发布数据。响应为我提供了 message_id,但消息未送达。

当我使用 Firebase 控制台而不是具有相同字段的 API 时,它已成功交付。

我的 php 代码:

<?php

$json_data = '{ "data": { 
                  "title": "Hey you got a message",
                  "text": "Hi from firebase api"
                },
                "to": "/topics/all",
                "priority": "high"
              }';

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://fcm.googleapis.com/fcm/send');
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
                                            'Content-Type: application/json',
                                            'Authorization:key="Used my server key here"'
                                          ));
curl_setopt($ch, CURLOPT_POSTFIELDS, $json_data);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$output = curl_exec($ch);
curl_close($ch);
echo $output;
?>

响应:

{"message_id":64666973642901*****}

PS:使用星号隐藏信息。

更新: 当我将 to 字段设置为特定标记时,正在传递消息。但当它设置为 topics/all 时不工作。 有没有其他方法可以像在控制台中一样将其发送给所有与该应用关联的人?

最佳答案

我终于知道了。起初我们的应用程序不会包含任何主题,我们必须明确地创建它们。

在您的应用中使用以下方法订阅主题

FirebaseMessaging.getInstance().subscribeToTopic("主题名称");

因此,要将其发送给所有应用程序用户,请使用上述方法让您的每个用户订阅特定主题。我用名称“all”创建了它。

现在将 JSON HTTP POST 请求中的 to 字段设置为 topics/NAME OF TOPICtopics/all 在我的例子中。

注意:订阅主题时,如果不存在该名称的主题,将自动创建新主题。

关于php - 使用 api 时未收到 Firebase 消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38197787/

相关文章:

ruby-on-rails - 如何通过 Rails POST 请求在 firebase 中安排云消息

firebase-cloud-messaging - FCM 是否支持 iOS 13 的新 apns-push-type

javascript - 如何检查 jQuery 属性是否已在 JavaScript 和 PHP 中设置?

javascript - 从pdf文件中读取注释

php - PayPal 和 PHP - 设置无运费

java - Firebase用户数据存储问题

php - 从字符串php中删除度数符号

java - 我想检查我的用户输入是否包含作为我的 firestore 数据库中的文档的子字符串,这在 Java 中可能吗? (Android 工作室)

ios - Firebase 删除用户问题

使用 Cloud Functions 的 iOS 后台通知