我已将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"
}
}
答案 0 :(得分:0)
如果您没有访问/刷新令牌:除非您自己提供权限并记住permissionId,否则您不能。 如果您有他的令牌:然后使用访问令牌尝试列出文件夹内容。看看它是否以“无权限”失败。