java - com.google.api.client.auth.oauth2.TokenResponseException : 401 Unauthorized

标签 java google-drive-api

我想使用 Java Google Drive API。 我试过这段代码:

public Drive getDriveService() throws GeneralSecurityException, IOException, URISyntaxException
    {
        HttpTransport httpTransport = new NetHttpTransport();
        JacksonFactory JSON_FACTORY = new JacksonFactory();

        GoogleCredential credential = new GoogleCredential.Builder()
            .setTransport(httpTransport)
            .setJsonFactory(JSON_FACTORY)
            .setServiceAccountId("sonoratestw-226@sonora-project.iam.gserviceaccount.com")
            .setServiceAccountPrivateKeyFromP12File(new java.io.File("C:\\buffer\\sonora project-3256770463ed.p12"))
            .setServiceAccountScopes(Collections.singleton(SQLAdminScopes.SQLSERVICE_ADMIN))
            .setServiceAccountUser("sonoratestw@gmail.com")
            .build();

        Drive service = new Drive.Builder(httpTransport, JSON_FACTORY, null)
            .setApplicationName("FileListAccessProject")
            .setHttpRequestInitializer(credential).build();

        return service;
    }

但是我得到这个错误:

An error occurred: com.google.api.client.auth.oauth2.TokenResponseException: 401 Unauthorized

我使用这个配置:

enter image description here

你能告诉我如何解决这个问题吗?

最佳答案

基于此SO question ,您收到错误 401 的原因之一是您使用的服务帐户无权访问与您的 Gmail 地址关联的驱动器帐户。因此,如果您希望能够访问它上传的文件,您必须通过服务帐户授予自己访问权限。

以下是我认为可以帮助您更多地了解服务帐户的其他 SO 问题

关于java - com.google.api.client.auth.oauth2.TokenResponseException : 401 Unauthorized,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40877302/

相关文章:

java - 运行maven spi项目进行调试

C# Action Delegate 的 Java invokeAndWait

java - FirebaseListAdapter 不为聊天应用程序推送单个项目 - Firebase-Ui 3.1

java - 带开始和结束计数的 Spring 数据分页

google-apps-script - 如何防止 "Remove risky access to your data"警告?

javascript - Google Drive 始终通过 API 导出空白 pdf

ios - 有关在设备之间共享 Google 云端硬盘存储区的问题

java - com.mysql.jdbc.exceptions.jdbc4.CommunicationsException MySQL + Apache Tomcat 7

flutter - 在谷歌驱动器上备份我的本地数据库总是会创建一个不同的文件 ID

iphone - Google Drive SDK - 流式传输音频文件