首页 > 解决方案 > 如何使用 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 的新手,希望能得到任何帮助。谢谢

标签: javagoogle-apigoogle-drive-apigoogle-api-java-client

解决方案


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

DriveScopes.DRIVE_METADATA_READONLY

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

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

DriveScopes.DRIVE

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


推荐阅读