目前已知Google Drive API示例命令行应用(DriveCommandLine)有效吗?我已经下载了Java客户端库,并编译了示例应用程序(插入我的应用程序的客户端ID和通过指定“已安装的应用程序”和“其他”创建的机密)。它运行并通知我在浏览器中访问以下链接:
(显然我的实际客户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添加到类路径中,显然,它不起作用)。
任何人都可以了解这里可能出现的问题吗?
谢谢!
答案 0 :(得分:0)
您需要从API访问页面下载JSON文件 https://cloud.google.com/console
将此json文件重命名为“client_secrets.json”
将此json复制到项目文件夹中,或者更具体地复制它 进入“src / main / resources”。 (此文件包含clientID和机密)。如果文件已存在于文件夹中,则将其替换。
现在运行该项目。您将重定向到Google云端硬盘的“允许” 访问“页面。
PS-json文件必须属于“已安装的类型应用程序”,因为这是一个命令行示例并在本地运行。