@SuppressWarnings("unchecked")
  private String getDataFile(UUID jobId, String url, TokenAuthData authData) throws IOException {
    Request.Builder requestBuilder = new Request.Builder().url(url);
    requestBuilder.header("Authorization", "Bearer " + authData.getToken());

    try (Response folderResponse = client.newCall(requestBuilder.build()).execute()) {
      ResponseBody folderBody = folderResponse.body();
      if (folderBody == null) {
        return "";
      }

      String folderContent = new String(folderBody.bytes());

      Map filesMap = objectMapper.reader().forType(Map.class).readValue(folderContent);

      String id = parseOfflineDataId(filesMap);
      if (id == null) {
        return "";
      }
      String contentUrl = String.format(contentTemplate, id);

      Request.Builder requestBuilder2 = new Request.Builder().url(contentUrl);
      requestBuilder2.header("Authorization", "Bearer " + authData.getToken());

      try (Response contentResponse = client.newCall(requestBuilder2.build()).execute()) {
        ResponseBody contentBody = contentResponse.body();
        if (contentBody == null) {
          return "";
        }
        return contentBody.string();

      } catch (IOException e) {
        // skip the offline data
        e.printStackTrace(); // FIXME log error
        return "";
      }
    }
  }
Exports a offline data file.

<p>This implementation expects the offline data to be a file named {@link #OFFLINE_DATA} placed
in the user's OneDrive in the folder [root]/offlinedata.

<p>Note the format of the exported contents are opaque; they may change without notice.
extensions/data-transfer/portability-data-transfer-microsoft/src/main/java/org/datatransferproject/transfer/microsoft/offline/MicrosoftOfflineDataExporter.java