从msgraph api下载csv报告

时间:2019-03-22 19:10:47

标签: java microsoft-graph websphere-8

在Websphere 8.x上使用Java 8。尝试从MS Graph API(/v1.0/reports/getEmailActivityUserDetail(period='D7')端点)获取审核报告,以执行诸如报告上次用户登录活动等操作。

生成OAuth令牌等都可以正常工作,并且我可以成功获取302 redirect URL,这使我可以使用postman或{{1}从浏览器下载CSV报告文件。 },PHP的wget等。

仅使用Java 8命令行应用程序在家工作,下面的代码即可抓取该文件。如果我将代码复制粘贴到我的工作机上,并通过Websphere Web应用程序调用它,则会收到IOException消息“连接重置”(注意-不被同级重置!)。我为file_get_contents添加了SSL证书,并向我的构建和类路径添加了Apache Commons CSV lib / jar。

对于如何进一步调试以解决此问题的建议表示赞赏。

reports.office.com

StackTrace()的“有趣”部分表明可能正在发生SSL,但这不是通常的“忘记将Web服务器证书导入Websphere配置”错误,通常是我第一次连接API服务时看到的错误,等

    String targetUrl = "https://reportsncu.office.com/data/v1.0/download?token=eyJ...*snip*...gFCg";
    try {
        InputStream input = new URL(targetUrl).openStream();
        Reader r = new InputStreamReader(input);
        Iterable<CSVRecord> records = CSVFormat.DEFAULT.parse(r);
        for (CSVRecord record : records) {
            String user = record.get(1);
            String lastActive = record.get(5);
            if (user.equals("user@example.com")) {
                System.out.println(user + " last active " + lastActive);
            }
        }
        r.close();
        input.close();

    } catch (MalformedURLException ex) {
        System.out.println("MalformedURLException: "+ex.getMessage());
    } catch (IOException ex) {
        System.out.println("IOException: "+ex.getMessage());
    }

1 个答案:

答案 0 :(得分:1)

如果这无济于事,请回报,@ ivanivan!

您发布的堆栈跟踪带回了IBM JDK的可怕记忆:)我没有公开的任何具体信息-但这有所帮助! https://www.ibm.com/developerworks/community/forums/html/topic?id=ec367703-7957-4249-9f0b-559c717c0c87