当前位置: 首页 > 知识库问答 >
问题:

谷歌驱动器驱动命令行示例应用程序不工作?

巫马修为
2023-03-14

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

https://accounts.google.com/o/oauth2/auth?access_type=online

(显然我的实际客户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(这似乎是错误的)。

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

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

谁能解释一下这里可能出了什么问题?

谢谢!

共有2个答案

钱志义
2023-03-14

>

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

    将此json文件重命名为"client_secrets.json"

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

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

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

  • 公冶鸣
    2023-03-14

    快速启动中的链接已过期。尝试从以下链接下载Drive SDK:http://code . Google . com/p/Google-API-Java-client/wiki/APIs # Drive _ API

    看看这是否对您有所不同。我的DriveCommand dLine应用程序运行良好。

     类似资料:
    • 下面是https://github.com/google/google-api-nodejs-client的代码。 一般问题:刷新令牌实际上如何与访问令牌一起工作? 背景:根据我的解释,每个访问令牌都有一个有限的时间跨度(~1小时)。因此,当用户第一次连接到我的服务器(服务器为用户身份验证提供了机制)时,服务器将收到有限生命期访问令牌和一次性刷新令牌。1小时后,访问令牌过期。 谢了!

    • 这段代码对我来说很好,但在可能24小时后,我需要再次进行身份验证过程。我希望这个认证过程只做一次,因为在我的项目中,他们将没有人参与,所以没有人会手动进行认证。任何帮助都将不胜感激。

    • 我正在写一个Android(版本ICS)应用程序。它将数据上传到谷歌驱动器。应用程序使用oauth2获取访问令牌。 第一步:获取授权令牌。

    • 脱机Google auth对驱动器中的非本机文件是否存在已知的问题?

    • 返回正确的标识符。当我使用服务帐户复制文件时,我可以全天在团队驱动器中复制。当我将它复制到用户的驱动器时,我得到的是“File not found:$UserRootid”。 我假设这是由于服务帐户无法访问用户的“我的驱动器”。我怎样才能让这个手术奏效?有人尝试过吗?

    • 尝试使用IE运行Selenium Webdriver测试时,浏览器将启动,但会立即崩溃,错误为“IE驱动程序的命令行服务器已停止工作”。 IE失败的脚本在Chrome和Firefox中运行良好 Windows 10 IE 11.15.16299.0 Python 3.6.3(使用Python 2.7.14进行了尝试) 32位IEDriverServer。exe版本3.5.0.0 我按照安装说明在h