0

目前已知 Google Drive API 示例命令行应用程序 (DriveCommandLine) 可以工作吗?我已经下载了 Java 客户端库,并编译了示例应用程序(插入我的应用程序的客户端 ID 和通过指定“已安装应用程序”和“其他”创建的密码)。它运行并通知我在浏览器中访问以下链接:

https://accounts.google.com/o/oauth2/auth?access_type=online&approval_prompt=auto&client_id=MY_ACTUAL_CLIENT_ID&redirect_uri=urn:ietf:wg:oauth:2.0:oob&response_type=code&scope=https://www.googleapis.com/auth/驾驶

(显然那里有我的实​​际客户 ID。)

这成功地为我提供了身份验证代码。当我在应用程序的提示符下输入它时,然后在该行:

File file = service.files().insert(body, mediaContent).execute();

我得到了例外:

Exception in thread "main" com.google.api.client.http.HttpResponseException: 401 Unauthorized
    at com.google.api.client.http.HttpRequest.execute(HttpRequest.java:978)
    at com.google.api.client.googleapis.media.MediaHttpUploader.executeUploadInitiation(MediaHttpUploader.java:338)
    at com.google.api.client.googleapis.media.MediaHttpUploader.upload(MediaHttpUploader.java:252)
    at com.google.api.services.drive.Drive$Files$Insert.executeUnparsed(Drive.java:309)
    at com.google.api.services.drive.Drive$Files$Insert.execute(Drive.java:331)
    at DriveCommandLine.main(DriveCommandLine.java:56)

调查显示GoogleCredential返回的所有元素都设置为 null(这似乎是错误的)。

我使用的 Drive API 客户端版本是“v2-rev5-1.7.2-beta”,这是当前快速入门页面上指向的版本: https ://developers.google.com/drive/quickstart

我正在使用这个 JAR 以及类路径中“libs”子目录中的所有 JAR 进行编译和运行(快速入门页面是指将源 JAR 添加到类路径,这显然不起作用)。

谁能阐明这里可能出了什么问题?

谢谢!

4

2 回答 2

0

快速入门中的链接已过时。尝试从以下链接下载 Drive SDK:http ://code.google.com/p/google-api-java-client/wiki/APIs#Drive_API

看看这对你有没有影响。我的 DriveCommandLine 应用程序运行良好。

于 2012-09-20T21:21:33.810 回答
0
  • 您需要从 https://cloud.google.com/console的 API 访问页面下载 JSON 文件。

  • 将此 json 文件重命名为“client_secrets.json”

  • 将此 json 复制到您的项目文件夹中,或者更具体地说,将其复制到“src/main/resources”中。(此文件包含 clientID 和机密)。如果该文件已存在于文件夹中,则将其替换。

  • 现在运行项目。您将被重定向到 Google Drive 的“允许访问”页面。

PS - json 文件必须属于“已安装类型的应用程序”,因为这是一个命令行示例并在本地运行。

于 2015-05-30T05:44:43.607 回答