如何解决 Google 驱动器 API (Java) 的 403 用户权限错误

How to solve 403 User Permissions error with Google Drive API (Java)

我最近开始使用 Google 驱动器 API 并成功地 运行 Google Drive API page 上提供的快速启动程序。

我使用的代码在“步骤 3”下。然而,当我尝试在我的 Google 驱动器上实现创建新文件的功能时,我收到了

403 "Insufficient Permission: Request had insufficient authentication scopes.".

我为此使用的代码是:

fileMetadata.setName("photo.jpg");
java.io.File filePath = new java.io.File("files/photo.jpg");
FileContent mediaContent = new FileContent("image/jpeg", filePath);
File file = driveService.files().create(fileMetadata, mediaContent)
    .setFields("id")
    .execute();
System.out.println("File ID: " + file.getId());

在 Google Drive API 页面上搜索解决方案时,我找到了 https://developers.google.com/drive/api/v3/handle-errors#resolve_a_403_error_the_user_does_not_have_sufficient_permissions_for_file_fileid,但这没有帮助。

除上述 link 外,我发现一些消息来源说我需要集成 oAuth 或 oAuth 2.0,但没有 Java 语法或关于如何集成的说明。

我很可能犯了一个简单的错误,但我又是 Google APIs 的新手,非常感谢任何帮助。谢谢

您关注的快速入门要求用户同意

DriveScopes.DRIVE_METADATA_READONLY

这意味着您只有只读权限。

Files.create 需要写入权限。您需要更改代码以包含更高的范围

DriveScopes.DRIVE

然后找到 TOKENS_DIRECTORY_PATH 并删除用户的令牌文件,这会导致您的代码再次请求授权并在同意屏幕中显示更高级别的范围