我正在尝试通过HTTP向多个用户的设备发送推送通知。
正如docs所说:
请求必须包含收件人 - 这可以是注册ID,注册ID数组或notification_key。必需的。
第三方服务器可以使用notification_key作为邮件的目标,而不是单个注册ID(或注册ID数组)。
简化代码:
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("POST");
conn.setRequestProperty("Content-Type", "application/json");
conn.setRequestProperty("project_id", PROJECT_ID);
conn.setRequestProperty("Authorization", "key="+AUTH_KEY);
JSONObject body = new JSONObject();
JSONArray ids = new JSONArray();
ids.add(NOTIF_KEY);
body.put("notification_key", ids);
conn.setDoOutput(true);
BufferedWriter wr = new BufferedWriter(new OutputStreamWriter(new DataOutputStream(conn.getOutputStream())));
body.writeJSONString(wr);
wr.flush();
wr.close();
int respCode = conn.getResponseCode();
因此,我有400(错误请求)响应代码和"缺少" registration_ids"字段"错误信息。
我尝试包含空白的registration_id参数,并将NOTIF_ID放入其中,没有任何变化。
我的请求正文很简单,就像IE的空白页
一样{"notification_key":["APA91bGm6LpfKo0_iPWIyUAtvYj7zMmdlMRN802wfsUeq8XaCThRbIcVXMIzwhL4MXr61522UppK--Qory2Zqa5e7o9thZo2tQYOYXBX8fP9sI3WpwSPSK0"]}
我做错了什么?
答案 0 :(得分:0)
而不是notification_key,用户registration_ids。您还需要添加数据JsonObject块以发送数据。
见下面的例子。
{ "collapse_key": "score_update",
"time_to_live": 108,
"delay_while_idle": true,
"data": {
"score": "4x8",
"time": "15:16.2342"
},
"registration_ids":["4", "8", "15", "16", "23", "42"]
}