Google Drive DriveCommandLine示例应用无法使用?

时间:2012-09-17 13:57:25

标签: google-drive-api

目前已知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/drive

(显然我的实际客户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添加到类路径中,显然,它不起作用)。

任何人都可以了解这里可能出现的问题吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

  • 您需要从API访问页面下载JSON文件 https://cloud.google.com/console

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

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

  • 现在运行该项目。您将重定向到Google云端硬盘的“允许” 访问“页面。

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