从Google云端硬盘上的oauth2.0获取共享文件中的元数据

时间:2012-09-24 03:16:35

标签: authentication google-drive-api

我使用的IDE是Eclipse 4.2 Juno。我没有编译或导入错误。这是我目前正在使用的代码(有些是从教程中公然复制的,有些是经过改编的,有些我不知道它来自哪里):

public static void print()
{

    HttpTransport httpTransport = new NetHttpTransport();
    JsonFactory jsonFactory = new JacksonFactory();

    Drive serv = new Drive(httpTransport, jsonFactory,null);
    try {
    File f = serv.files().get("1K5Ge9-Rz_L2gJH5hKrpkAfFDos5ZgRCvnzy7_HaiAV8").execute();

    System.out.println(f.getId());


        //System.out.println(f.getDownloadUrl());
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

}

错误在“File f = ...”的行上。我得到403次使用限制错误。查看代码,这是可以预期的,因为它不会根据Google文档中的要求进行身份验证。

该应用程序是一个简单的可执行文件.jar,它从各种来源(在本例中为google驱动器)中提取内容,然后调用外部程序进行转换。如果我能掌握文档的元数据,我可以用它来更好地为用户服务。但是,内容必须公开。那么如何在不询问用户个人信息或打开Web浏览器的情况下从文档链接获取数据?是的,我有一个API密钥。

我知道它可以工作,因为概念验证HERE让我可以选择是否使用OAuth2.0。对于我目前正在从文档列表中迁移的记录。

修改的 只有在我发布这个问题后不到5分钟才能弄明白这一点才有意义。我只需构建一个看起来像这样的网址“https://www.googleapis.com/drive/v2/files/ document_id ?key = key 我可以得到我想要的所有数据。

新问题,将我的密钥放在源代码中是明智的吗?

1 个答案:

答案 0 :(得分:1)

如果您未使用OAuth 2.0授权您的请求,则无法检索存储在Google云端硬盘中的文件的元数据。

您需要在API控制台中创建项目,并在发送授权请求之前为应用程序生成OAuth 2.0凭据,而不是API密钥。

执行OAuth流并获取访问令牌后,您可以使用它来检索文档的元数据。开始使用Google Drive SDK的简便方法是https://developers.google.com/drive/quickstart的快速入门,它将指导您从项目创建到将文件上传到云端硬盘的完整命令行应用程序。