Http 401 ошибка при публикации в API GoogleGroups в Java? - PullRequest
0 голосов
/ 31 мая 2019

Документация на сайте 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

...