FCM HTTP请求返回message_id,但Android上未收到任何消息

我正在尝试将我的服务器上的通知发送到我的 Android设备.我正在使用Firebase Cloud Messaging发送通知.我可以通过Firebase控制台发送通知,然后在手机上收到消息.但是,我正在尝试通过我的服务器发送消息,但该消息尚未生效.

我执行下面的代码时得到以下响应:

“{\”message_id\”:58934758934758936346437}”

当我们在Firebase Documentation查看Firebase的文档时,我们可以看到接收message_id意味着消息已成功发送.我虽然没有在手机上收到它.

我确实订阅了应用程序到正确的主题.

我正在运行以下代码:

private void test(String topic) {
    try {
        //Setup request
        URL url = new URL("https://fcm.googleapis.com/fcm/send");
        HttpURLConnection hc = (HttpURLConnection) url.openConnection();
        hc.setDoOutput(true);
        hc.setDoInput(true);

        //Set request params
        String message = "{\"to\": \"/topics/" + topic + "\"}";

        hc.addRequestProperty("Content-Type", "application/json");
        hc.addRequestProperty("Authorization", "key=SECRET");

        DataOutputStream dos = new DataOutputStream(hc.getOutputStream());
        dos.writeBytes(message);
        dos.close();

        //Get Response  
        InputStream is = hc.getInputStream();
        BufferedReader rd = new BufferedReader(new InputStreamReader(is));
        StringBuilder response = new StringBuilder(); // or StringBuffer if Java version 5+
        String line;
        while ((line = rd.readLine()) != null) {
          response.append(line);
        }
        rd.close();

        label.setText("RESPONSE: " + response.toString());

    } catch (Exception ex) {
        label.setText("Er ging iets mis");
        ex.printStackTrace();
    }
}
检查从服务器发送的消息格式.

例如,这里是与上面相同的IM应用程序中的JSON格式的消息,其中信息封装在数据密钥中,并且客户端应用程序应该解释内容:

{
   "to" : "bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...",
   "data" : {
     "Nick" : "Mario",
     "body" : "great match!",
     "Room" : "PortugalVSDenmark"
   },
 }

有关更多查询,请查看此文档:
FCM Docs

相关文章
相关标签/搜索