Firebase FCM推送,获取错误缺少注册|Android



我以前看过这个主题的讨论,但我认为它不是同一个场景。

我正试图通过FCM(Firebase Cloud Messaging(将推送通知从一台设备(将成为管理设备(发送到所有其他设备,我完全按照他们的文档进行操作。

我已经尝试订阅主题或保持简单,但仍然收到相同的错误

导弹注册

 String jsonData = "{"to":"/topics/news","notification":{"title":"title","body":"text" }}";
                byte[] postData = jsonData.getBytes(Charset.forName("UTF-8"));
                int postDataLength = postData.length;
                URL url = new URL("https://fcm.googleapis.com/fcm/send");
                HttpURLConnection con = (HttpURLConnection) url.openConnection();
                con.setDoInput(true);
                con.setDoOutput(true);
                con.setInstanceFollowRedirects(true);
                con.setRequestMethod("POST");
                con.setRequestProperty("Content-Type","application/json");
                con.setRequestProperty("Authorization","key=AIzaSyB70J***-z34q2_h*******qjZsM5zBIf8Y"); //I've added stars :-) 
                con.setRequestProperty("Content-Type","application/x-www-form-urlencoded");
                con.setRequestProperty("Content-Type","charset=UTF-8");
                con.setRequestProperty("Content-Length",Integer.toString(postDataLength));
                con.setUseCaches(false);
                DataOutputStream wr = new DataOutputStream(con.getOutputStream());
                wr.write(postData);
                InputStream inputStream= con.getInputStream();
                BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
                String line = null;
                String outPut = "";
                while (((line = reader.readLine()) != null)){
                    outPut += line;
                }

我使用Postman web API客户端应用程序向FCM URL发送/尝试发送FCM推送通知:https://fcm.googleapis.com/fcm/send

我用错了Content-Type: application/x-www-form-urlencoded,所以我把它改成了

Content-Type:  application/json

这基本上是必需的,因为我们将推送通知作为JSON负载发送。

干杯!

我也收到了同样的错误,但我的错误是在服务器端(从rails推送到android(,但问题是我忘记在标题中指定内容类型(我使用RestClient发布到firebase(。希望它能帮助

RestClient.post( "https://fcm.googleapis.com/fcm/send",
             {:to => reg_id,:notification => options }.to_json,{:content_type => :json, :accept => :json,:Authorization => "key=*****"}

感谢您发布您的答案,不管怎样,我的代码现在可以工作了,我所要做的就是更改内容类型(我刚刚从firebase文档中复制了内容类型(,并将其发送到订阅主题。。。。现在,我的所有用户都可以从我的设备上获得通知:-(。

相关内容

  • 没有找到相关文章

最新更新