android - Firebase FCM 推送,获取错误缺少注册 |安卓

标签 android firebase google-api firebase-cloud-messaging content-type

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

我正在尝试通过 FCM(Firebase 云消息传递)从一台设备(将成为管理设备)向所有其他设备发送推送通知,我完全按照他们的文档进行操作。

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

MissingRegistration

 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 推送通知发送到 FCM URL:https://fcm.googleapis.com/fcm/send

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

Content-Type:  application/json

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

干杯!

关于android - Firebase FCM 推送,获取错误缺少注册 |安卓,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38814193/

相关文章:

python - 搜索不匹配 Google Calendar API 查询中的单个字符?

android - 来自卡片 View 的所有文本都没有显示在 ScrollView 中

javascript - Google Analytics Mobile APP 日志显示已连接,但实时跟踪显示 0 个用户

android - 在不使用保存按钮的情况下保存editText,应用停止运行

google-api - 如何授权服务帐户访问 Google Admin API

php - 使用 Google API 操纵组织的日历

android - 删除线性布局内的所有项目

angular - 如何使用 Firebase 功能部署 Angular 9 通用应用程序

android - 找不到 com.google.gms :google-services:4. 1.0

firebase - 如何在 flutter 应用程序中禁用云消息传递?