没有Google Apps的Google云端硬盘Api服务帐户

时间:2014-06-24 17:54:00

标签: java google-drive-api google-oauth

我正在尝试通过google api oauth服务帐户为我的google云端硬盘帐户构建连接器。我正在使用java的官方gooogle客户端库。

public static Drive getDriveService() throws GeneralSecurityException,
            IOException, URISyntaxException {
        HttpTransport httpTransport = GoogleNetHttpTransport.newTrustedTransport();
        GoogleCredential credentials = new GoogleCredential.Builder()
                .setTransport(httpTransport)
                .setJsonFactory(JacksonFactory.getDefaultInstance())
                .setServiceAccountId(SERVICE_ACCOUNT_EMAIL)
                .setServiceAccountScopes(Arrays.asList(new String[]{DriveScopes.DRIVE}))
                .setServiceAccountPrivateKeyFromP12File(new java.io.File(SERVICE_ACCOUNT_PKCS12_FILE_PATH))
                .setServiceAccountUser(ACCOUNT_USER)
                .build();
        Drive service = new Drive.Builder(httpTransport, JacksonFactory.getDefaultInstance(), credentials)
                .setHttpRequestInitializer(credentials).build();
        return service;
    }

它是来自docs的基本样本。问题是它不起作用。执行后,我在json反序列化上获得了NullPointerException

因此,我使用源代码将此代码调试到谷歌库,我发现访问令牌的httpRequest返回状态代码401,内容为空。我对Google Calendar API使用了相同的方法,它没有任何问题。

有人能告诉我我做错了什么吗?或者有没有其他方式来访问我的文件而无需用户交互?感谢

0 个答案:

没有答案