Android 通过通知密钥(HTTP)发送GCM推送通知

Android 通过通知密钥(HTTP)发送GCM推送通知,android,google-cloud-messaging,Android,Google Cloud Messaging,我正在尝试通过HTTP向多个用户的设备发送推送通知 正如上面所说: 请求必须包含一个收件人,该收件人可以是注册ID、注册ID数组或通知密钥。必需的 第三方服务器可以使用通知密钥作为消息的目标,而不是单个注册ID(或注册ID数组) 简化代码: HttpURLConnection conn = (HttpURLConnection) url.openConnection(); conn.setRequestMethod("POST"); conn.setRequestProperty("Conten

我正在尝试通过HTTP向多个用户的设备发送推送通知

正如上面所说:

请求必须包含一个收件人,该收件人可以是注册ID、注册ID数组或通知密钥。必需的

第三方服务器可以使用通知密钥作为消息的目标,而不是单个注册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(错误请求)响应代码和“缺少”注册标识“字段”错误消息

我试图包含空白注册id参数,并将我的NOTIF id放入其中,但没有任何更改

我的请求正文很简单,就像IE的空白页一样

{"notification_key":["APA91bGm6LpfKo0_iPWIyUAtvYj7zMmdlMRN802wfsUeq8XaCThRbIcVXMIzwhL4MXr61522UppK--Qory2Zqa5e7o9thZo2tQYOYXBX8fP9sI3WpwSPSK0"]}

我做错了什么?

不是通知键,而是用户注册ID。您还需要添加数据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"]
}

不幸的是,这不是一个正确的答案,因为我的主要问题是通过通知键发送