java - 如何使用 Google Drive API (Java) 解决 403 用户权限错误
问题描述
我最近开始使用 Google Drive API 并成功运行了Google Drive API 页面上提供的快速启动程序。
我使用的代码在“步骤 3”下。但是,当我尝试实现在 Google Drive 上创建新文件的功能时,我收到了
403“权限不足:请求的身份验证范围不足。”。
我用于此的代码是:
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,但这没有帮助。
除了上面的链接,我发现一些消息来源说我需要集成 oAuth 或 oAuth 2.0,但没有 Java 语法或有关如何执行此操作的说明。
我很可能会犯一个简单的错误,但我还是 Google API 的新手,希望能得到任何帮助。谢谢
解决方案
您正在关注的快速入门要求用户同意
DriveScopes.DRIVE_METADATA_READONLY
这意味着您只有只读访问权限。
Files.create 需要写入权限。您需要更改代码以包含更高的范围
DriveScopes.DRIVE
然后找到 TOKENS_DIRECTORY_PATH 并删除用户的令牌文件,这应该会导致您的代码再次请求授权并在同意屏幕中显示更高级别的范围