我尝试在Firebase Cloud Messaging 中创建一组设备,结果得到了一个异常"https://android.googleapis.com/gcm/googlenotification"。我有几个问题:
- 我需要在字段中输入什么:senderId,registrationId,idToken?
- 我如何更改这部分代码以创建组而不是添加到组?
- 我需要在哪里输入"授权","密钥=AIzaS..."?
法典:
public String addNotificationKey(
String senderId, String userEmail, String registrationId, String idToken)
throws IOException, JSONException {
URL url = new URL("https://android.googleapis.com/gcm/googlenotification");
HttpURLConnection con = (HttpURLConnection) url.openConnection();
con.setDoOutput(true);
// HTTP request header
con.setRequestProperty("project_id", senderId);
con.setRequestProperty("Content-Type", "application/json");
con.setRequestProperty("Accept", "application/json");
con.setRequestMethod("POST");
con.connect();
// HTTP request
JSONObject data = new JSONObject();
data.put("operation", "add");
data.put("notification_key_name", userEmail);
data.put("registration_ids", new JSONArray(Arrays.asList(registrationId)));
data.put("id_token", idToken);
OutputStream os = con.getOutputStream();
os.write(data.toString().getBytes("UTF-8"));
os.close();
// Read the response into a string
InputStream is = con.getInputStream();
String responseString = new Scanner(is, "UTF-8").useDelimiter("\A").next();
is.close();
// Parse the JSON string and return the notification key
JSONObject response = new JSONObject(responseString);
return response.getString("notification_key");
}
对于 #3:
con.setRequestProperty("Authorization", "key=AIzaS...");
- 我需要在字段中输入什么:senderId,registrationId,idToken?
请参阅凭据中的定义。
发件人 ID 可以在 Firebase 控制台中找到。转到项目设置,然后转到云消息选项卡。
注册令牌在客户端应用端生成。请参阅此处的相应设置文档,具体取决于客户端应用类型。
idToken
(AFAIK( 仅用于客户端应用端。请参阅此处的 (Android( 文档。
- 我如何更改这部分代码以创建组而不是添加到组?
改变
data.put("operation", "add");
自
data.put("operation", "create");
- 我需要在哪里输入"授权","密钥=AIzaS..."?
参见普夫的回答。