如何授予Google Drive REST API完全权限?

Tod*_*ach 2 java google-api oauth-2.0 google-drive-api google-admin-sdk

我正在尝试创建一个复制和删除现有电子表格的应用.我已经从https://developers.google.com/drive/v2/web/quickstart/java设置了DriveQuickstart

我现在得到的错误是说我没有足够的权限来访问它,即使我在运行示例后单击浏览器上出现的"允许"按钮.

我的代码与快速入门链接完全相同.

我得到这个堆栈跟踪:

Exception in thread "main" com.google.api.client.googleapis.json.GoogleJsonResponseException: 403 Forbidden
{
  "code" : 403,
  "errors" : [ {
    "domain" : "global",
    "message" : "Insufficient Permission",
    "reason" : "insufficientPermissions"
  } ],
  "message" : "Insufficient Permission"
}
    at com.google.api.client.googleapis.json.GoogleJsonResponseException.from(GoogleJsonResponseException.java:145)
    at com.google.api.client.googleapis.services.json.AbstractGoogleJsonClientRequest.newExceptionOnError(AbstractGoogleJsonClientRequest.java:113)
    at com.google.api.client.googleapis.services.json.AbstractGoogleJsonClientRequest.newExceptionOnError(AbstractGoogleJsonClientRequest.java:40)
    at com.google.api.client.googleapis.services.AbstractGoogleClientRequest$1.interceptResponse(AbstractGoogleClientRequest.java:321)
    at com.google.api.client.http.HttpRequest.execute(HttpRequest.java:1056)
    at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.executeUnparsed(AbstractGoogleClientRequest.java:419)
    at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.executeUnparsed(AbstractGoogleClientRequest.java:352)
    at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.execute(AbstractGoogleClientRequest.java:469)
    at DriveQuickstart.main(DriveQuickstart.java:110)
Run Code Online (Sandbox Code Playgroud)

Sri*_*bat 5

为了建立adjuremods响应,这对我有用:

1)改变这一行:

private static final List<String> SCOPES =
    Arrays.asList(DriveScopes.DRIVE_METADATA_READONLY);
Run Code Online (Sandbox Code Playgroud)

至:

private static final java.util.Collection<String> SCOPES =
    DriveScopes.all();
Run Code Online (Sandbox Code Playgroud)

2)删除现有的存储凭据,以便再次获取它们,然后重新执行您的程序:

rm ~/.credentials/drive-java-quickstart/StoredCredential
Run Code Online (Sandbox Code Playgroud)

注意:您需要一个名为client_secret.jsonfile 的OAuth客户端ID ,而不是client_id.json文件(我认为 - 无论如何,这对我有用).