无法使用驱动器SDK

时间:2015-10-12 18:00:19

标签: google-app-engine google-drive-api

我有一个简单的程序,可以使用驱动SDK在Google云端硬盘中插入doc。我正在使用服务帐户:

try {
    credential = new GoogleCredential.Builder()
                    .setTransport(httpTransport)
                    .setJsonFactory(jsonFactory)
                    .setServiceAccountId("1090759145727-abc@developer.gserviceaccount.com")
                    .setServiceAccountScopes(Arrays.asList(DriveScopes.DRIVE))
                    .setServiceAccountUser("1090759145727-abc@developer.gserviceaccount.com")
                    .setServiceAccountPrivateKeyFromP12File(
                            new java.io.File(url.getPath())).build();
} catch (GeneralSecurityException e) {
    System.out.println(e);
    e.printStackTrace();
} catch (IOException e) {
    System.out.println(e);
    e.printStackTrace();
}

Drive driveService = new Drive.Builder(httpTransport, jsonFactory, null)
                                 .setHttpRequestInitializer(credential)
                                 .setApplicationName("guestbook").build();

File body = new File();
body.setTitle("Test document");
body.setDescription("Test file descrition");
body.setMimeType("text/html");

java.io.File fileContent = new java.io.File("index.html");
FileContent mediaContent = new FileContent("text/html", fileContent);

File file = driveService.files().insert(body, mediaContent).execute();

使用上面的代码index.html文件插入驱动器。我能够通过记录来自fileId对象的file来确认。但是,我无法在我的google云端硬盘帐户中查看该文件。

如果我使用我的Gmail帐户共享该文件,我可以在我的云端硬盘帐户中查看该文件。

Permission permission = new Permission();
permission.setId("xyz@gmail.com");
permission.setType("user");
permission.setRole("writer");
Insert insert = driveService.permissions().insert(file.getId(), permission);
insert.execute();

我也无法获得导出链接Map。导出链接映射到null

Map<String, String> links = file.getExportLinks();

使用服务帐户时:

  • 文件存储在哪里?
  • 如何查看文件?
  • 如何检索导出链接?

0 个答案:

没有答案