Документация на сайте API Google не содержит полных рабочих примеров использования групп API для доступа к группе или ее изменения, таких как добавление участника.Для разных частей есть фрагменты, но я получаю сообщение об ошибке 401, когда собираю все вместе, и я не знаю, упускаю ли я какую-то ключевую часть.
Я пытался соединить найденные фрагменты вместев работающее приложение, но получаю ошибку 401.
GoogleCredential credential = GoogleCredential.fromStream(new FileInputStream("<path to my json file I downloaded from the service accounts page>"))
.createScoped(Collections.singleton("https://www.googleapis.com/auth/admin.directory.group"));
URL url = new URL("https://www.googleapis.com/admin/directory/v1/groups/<identifier to the group, such as the group email address>/members");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setDoOutput(true);
conn.setRequestMethod("POST");
conn.setRequestProperty("Content-Type", "application/json");
conn.setRequestProperty("Authorization", "Bearer " + credential.getAccessToken());
conn.setRequestProperty("Accept", "application/json");
StringBuffer jsonParamsBuffer = new StringBuffer();
jsonParamsBuffer .append("{")
.append("\"email\": \"")
.append("test-email@notarealdomain.fake")
.append("\", ")
.append("\"role\": \"")
.append("MEMBER")
.append("\"")
.append("}")
.append("]")
.append("}");
OutputStream os = conn.getOutputStream();
os.write(jsonParamsBuffer.toString().getBytes());
os.flush();
BufferedReader br = new BufferedReader(new InputStreamReader((conn.getInputStream())));
String output;
System.out.println("Response from Google Groups APi:");
while ((output = br.readLine()) != null) {
System.out.println(output);
}
conn.disconnect();
Сервер вернул код ответа HTTP: 401 для URL: https://www.googleapis.com/admin/directory/v1/groups//members