【问题标题】:Google Drive API file downloadUrl returns 401Google Drive API 文件 downloadUrl 返回 401
【发布时间】:2014-11-01 08:04:54
【问题描述】:

当我请求 Google 云端硬盘文件的 downloadUrl 字段时,我收到了 401 Unauthorized 响应。我做错了什么?

编辑:为了澄清,文件权限设置为公共 (test.txt),我可以访问文件的元数据以获取 downloadUrl(如下面的示例代码所示)。那么为什么我可以使用 /files/{id}?key={api_key} 端点而不是 downloadUrl 链接?根据https://developers.google.com/console/help/new/#usingkeys,当“数据所有者已识别为公共的数据,例如公共日历或博客”时,您应该能够使用 api 密钥。

https://developers.google.com/drive/v2/reference/files#downloadUrl

var xhr = new XMLHttpRequest();
xhr.open("get", "https://www.googleapis.com/drive/v2/files/0Bzim72JjnlIWRFlURmRrX3N6NEE?key=AIzaSyDo66jOFuHllu3r3PwKcZaUd7N9ho9l9WU");
xhr.onreadystatechange = function(){
    if(xhr.readyState === 4){
        var download = new XMLHttpRequest();
        download.open("get", JSON.parse(xhr.responseText)['downloadUrl']);
        download.onreadystatechange = function(){
            if(download.readyState === 4){
                console.log(download.status);
            }
        };
        download.send();
    }
};
xhr.send();

【问题讨论】:

    标签: javascript google-drive-api


    【解决方案1】:

    您需要使用 OAuth 并获得用户的许可,才能验证您的请求并获得对云端硬盘文件的访问权限。 Check our the documentation here.

    【讨论】:

    • 由于文件的权限设置为公开,我可以通过 /files/{id}?key={api_key} 获取文件的元数据,而无需 Oauth。为什么我无法获取内容?
    • 根据developers.google.com/console/help/new/#usingkeys,当“数据所有者已识别为公共的数据,例如公共日历或博客”时,我应该能够使用api密钥。
    • 这很有趣。您应该将它们添加到您的原始问题中。
    猜你喜欢
    • 2016-11-21
    • 1970-01-01
    • 1970-01-01
    • 2014-12-12
    • 1970-01-01
    • 1970-01-01
    • 2019-03-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多