如何在Google Drive SDK中检查文件夹的权限给用户?

时间:2013-12-10 18:20:59

标签: java jquery google-drive-api

我已将Google-Drive集成到我的网站中。我使用的是Google Drive Java API v2。我有一种情况,当用户登录我的网站时,我需要检查他对与该网站相关联的Google云端硬盘文件夹(例如Folder1)的权限,并根据我需要向他展示内容的权限。我对此用户的所有信息均为Google Drive FolderID, EmailAddress and access token。如何检查用户对give文件夹的权限?这是我的代码。

我试图通过向Google发出ajax调用,然后访问令牌/ FileID来显示我网站中的Google文件夹。如果用户没有权限,那么它发送404错误,说明File not Found show如下所示。但它应该向我显示“许可错误”。文件确实存在。

function showLinkedGoogleFolder(fileId) {
    $.ajax({
            timeout: 10000, // Timeout (in ms) = 10sec
            url: _getGoogleDriveUrl(fileId),
            beforeSend: function(xhr) {
                xhr.setRequestHeader('Authorization', 'Bearer ' + accessToken);
            },
            type: 'GET',
            dataType: 'json',
            success: function(data, textStatus, jqXHR) {
                if (typeof(callback) === 'function') {
                    callback(data, textStatus, jqXHR);
                }
            },
            error: function(data, textStatus, jqXHR) {
                if (typeof(errorCallback) === 'function') {
                    errorCallback(data, textStatus, jqXHR);
                }
            },
            complete: function(jqXHR, textStatus) {
                if (typeof(completeCallback) === 'function') {
                    completeCallback(jqXHR, textStatus);
                }
            }
        });
}

    function _getGoogleDriveUrl(fileId) {
        var host = "../"; // relative path to proxy
        var proxyName = "proxy/google-drive-lti";
        var result = host+proxyName+'/drive/v2/files/';
        if ($.trim(fileId) !== '') {
            result = result + fileId;
        }
        return result;
    }
    {
     "error": {
      "errors": [
       {
        "domain": "global",
        "reason": "notFound",
        "message": "File not found: 0BwwFUSF0YgJgUHo2Y0pBOW5lNmc"
       }
      ],
      "code": 404,
      "message": "File not found: 0BwwFUSF0YgJgUHo2Y0pBOW5lNmc"
     }
    } 

1 个答案:

答案 0 :(得分:0)

如果您没有访问/刷新令牌:除非您自己提供权限并记住permissionId,否则您不能。 如果您有他的令牌:然后使用访问令牌尝试列出文件夹内容。看看它是否以“无权限”失败。