我有问题,没有找到ID文件夹,我想将文件创建到我之前准备的文件夹中的共享驱动器中,这是我的代码
fgetc(stderr)
这是文件夹的 1kM_fdJek3b4sErr_xxx 密钥,我正在使用服务帐户进行授权,这是我的私钥文件 privateKey.p12 。 我的电子邮件ID已被授予访问共享驱动器的权限(我的电子邮件ID是内容管理器)。但是我遇到一个问题,即找不到以下消息中的文件夹ID
public static void main (String[]args) throws GeneralSecurityException, IOException {
Drive service = CreateFolder.createService();
try {
String key = "1kM_fdJek3b4sErr_xxx";
File fileMetadata = new File();
fileMetadata.setName("invoice");
fileMetadata.setParents(Collections.singletonList(key));
fileMetadata.setMimeType("application/vnd.google-apps.folder");
File file = service.files().create(fileMetadata)
.setFields("id , parents").execute();
System.out.println("folder successfully created by id " + file.getName());
} catch (Exception e) {
e.printStackTrace();
}
}
@SuppressWarnings("deprecation")
private static Drive createService() throws GeneralSecurityException, IOException {
final NetHttpTransport HTTP_TRANSPORT = GoogleNetHttpTransport.newTrustedTransport();
GoogleCredential credential = new GoogleCredential.Builder()
.setTransport(HTTP_TRANSPORT)
.setJsonFactory(JSON_FACTORY)
.setServiceAccountId("my-email-id")
.setServiceAccountScopes(SCOPES)
.setServiceAccountPrivateKeyFromP12File(new java.io.File("privateKey.p12"))
.build();
return new Drive.Builder(HTTP_TRANSPORT, JSON_FACTORY, credential)
.setApplicationName(APPLICATION_NAME).build();
}
我需要帮助才能在共享驱动器中的文件夹中创建文件
答案 0 :(得分:0)
我的电子邮件ID已被授予访问共享驱动器的权限(my-email-id是内容管理器)。但是我遇到一个问题,找不到文件夹ID,如下面的消息所示
服务帐户不是您。服务帐户是其自己的虚拟用户,它具有自己的驱动器帐户。授予您对共享驱动器的访问权限不会授予服务帐户对其的访问权限。通过获取服务帐户的电子邮件地址并授予其对文件夹的权限,与服务帐户共享文件夹。这样便可以看到该文件夹。
答案 1 :(得分:0)
我从此链接获取信息 https://developers.google.com/drive/api/v3/enable-shareddrives
添加此代码
.setSupportsTeamDrives(true)
完整代码
File file = service.files().create(fileMetadata)
.setSupportsTeamDrives(true)
.setFields("id , parents").execute();