获取报告 G Suite 帐户

get report G Suite account

我正在尝试通过调用 https://www.googleapis.com/admin/reports/v1/activity/users/all/applications/meet

获取 google 报告 activity

我创建了一个服务帐户,我必须使用生成的 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);

但我得到的是空值。

你能告诉我我想念什么吗?。 非常感谢。

访问令牌不是您请求的一部分URL。您可以阅读 here 了解 OAuth2 协议及其工作原理。

但是,Google 构建了一个 API,使您能够验证您的请求,而不必担心底层的 OAuth2 流程。 您应该使用 Java Google 报告 API 来访问活动。 Here 您可以找到 Java 快速入门,它将帮助您完成 Java 应用程序的首次设置。

这里 Java 使用 Google 报告 API:

翻译您正在尝试做的事情
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

Google Reports API