получить отчет G Suite аккаунт - PullRequest
0 голосов
/ 19 апреля 2020

Я пытаюсь получить активность в отчете Google, позвонив по номеру https://www.googleapis.com/admin/reports/v1/activity/users/all/applications/meet

. Я создал служебную учетную запись и должен использовать сгенерированный private key (json файл) как access token.

Мой код был:

String PROTECTED_RESOURCE_URL = "https://www.googleapis.com/admin/reports/v1/activity/users/all/applications/meet?eventName=call_ended&maxResults=10&access_token=";
        String graph = "";
        try
        {
            JSONParser parser = new JSONParser();
            JSONObject data = (JSONObject) parser.parse(
                  new FileReader("C:/Users/Administrateur/Desktop/GoogleApis/Interoperability-googleApis/target/classes/my-first-project-274515-361633451f1c.json"));//path to the JSON file.

            String json_private_key = data.toJSONString();

            URL urUserInfo = new URL(PROTECTED_RESOURCE_URL + json_private_key);
            HttpURLConnection connObtainUserInfo = (HttpURLConnection) urUserInfo.openConnection();
            if (connObtainUserInfo.getResponseCode() == HttpURLConnection.HTTP_OK)
            {
                StringBuilder sbLines = new StringBuilder("");

                BufferedReader reader = new BufferedReader(new InputStreamReader(connObtainUserInfo.getInputStream(), "utf-8"));
                String strLine = "";
                while ((strLine = reader.readLine()) != null)
                {
                    sbLines.append(strLine);
                }
                graph = sbLines.toString();
            }
        }
        catch (IOException ex)
        {
            ex.printStackTrace();
        }

        System.out.println("--------------- Result: " + graph);

, но я получил нулевое значение.

Не могли бы вы сказать мне, что я пропустил? Большое спасибо.

1 Ответ

0 голосов
/ 20 апреля 2020

Токен доступа не является частью URL вашего запроса. Вы можете прочитать здесь о протоколе OAuth2 и о том, как он работает.

Однако Google создал API, который позволяет вам аутентифицировать ваши запросы, не беспокоясь о базовом процессе OAuth2. Вы должны использовать Java API отчетов Google для доступа к действиям. Здесь вы можете найти Java Quickstart, который поможет вам с первой настройкой вашего Java приложения.

Здесь перевод Java того, что вы пытаетесь сделать , используя API отчетов Google:

Reports service = new Reports.Builder(HTTP_TRANSPORT, JSON_FACTORY, getCredentials(HTTP_TRANSPORT))
                  .setApplicationName(APPLICATION_NAME)
                  .build();

String userKey = "all";
String applicationName = "meet";
String eventName = "call_ended";
Activities result = service.activities().list(userKey, applicationName)
                    .setEventName(eventName)
                    .setMaxResults(10)
                    .execute();

Редактировать:

Обязательно используйте последнюю версию пакета Java API. Вы можете найти Java API документы здесь: https://developers.google.com/resources/api-libraries/documentation/admin/reports_v1/java/latest/

Если вы используете Gradle, обязательно укажите эту строку в параметре зависимостей.

dependencies {
   ...
   compile 'com.google.apis:google-api-services-admin-reports:reports_v1-rev89-1.25.0'
}

Ссылки

OAuth2

API отчетов Google

...