【问题标题】:Firebase message not received while using api使用 api 时未收到 Firebase 消息
【发布时间】:2016-07-05 07:38:35
【问题描述】:

我正在使用使用 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 时不起作用。 有没有其他方法可以像在控制台中一样将其发送给所有与应用关联的人?

【问题讨论】:

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


    【解决方案1】:

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

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

    FirebaseMessaging.getInstance().subscribeToTopic("NAME OF TOPIC");

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-05-15
      • 2020-01-21
      • 2018-01-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-24
      • 2021-05-04
      相关资源
      最近更新 更多