【发布时间】:2014-08-01 15:10:27
【问题描述】:
我正在尝试通过 HTTP 向多个用户的设备发送推送通知。
正如docs 所说:
请求必须包含接收者——这可以是注册 ID、注册 ID 数组或 notification_key。必填。
第 3 方服务器可以使用 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"]}
我做错了什么?
【问题讨论】:
标签: android google-cloud-messaging