2013-12-10 2 views
0

У меня есть Google-Drive, интегрированный в мой сайт. Я использую Google Drive Java API v2. У меня есть ситуация, когда пользователь регистрируется на моем веб-сайте, мне нужно проверить его разрешения для папки Google Диска (скажем, Folder1), которая связана с сайтом, и на основе разрешения мне нужно показать ему контент. Вся информация, которую я имею в отношении этого пользователя, - Google Drive FolderID, EmailAddress and access token. Как проверить права пользователей на папку «Отправка» или нет? Вот мой код.Как проверить разрешение папки на пользователя в SDK Google Диске?

Я пытаюсь показать папки Google на своем сайте, сделав ajax-вызов для Google, предоставив ему токен доступа/FileID. Если у пользователя нет разрешений, он отправляет 404 сообщение об ошибке «Файл не найден», как показано ниже. Но это должно показать мне «ошибку разрешения». Файл существует.

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

404 верен. Если у пользователя нет разрешения на файл, Google не будет даже утекать тот факт, что файл существует или не существует. Это стандартный процесс обеспечения безопасности. Это немного похоже на вход на веб-сайт с использованием имени пользователя и пароля. Сайты не говорят, что «имя пользователя правильное, но пароль неправильный». Они просто говорят «нет соответствия для данного имени пользователя и пароля». – pinoyyid

ответ

0

Если вы не имеете его доступа/токен обновления: Если вы не дали разрешения самостоятельно и вспомнил permissionId, вы не можете. Если у вас есть свой токен, используйте маркер доступа, чтобы попытаться перечислить содержимое папки. Посмотрите, не сработает ли «без разрешения».

+0

Это их способ проверить это в javaAPis. можете ли вы мне сослаться на ссылку, как это сделать? – pushya

+0

Прямо сейчас я вижу, что Google отправляет сообщение об ошибке 404, в котором говорится, что «Файл не найден: OBEWDSFSFSFSF» вместо «Ошибка разрешения» – pushya

+1

Его все в документации. Посмотрите и опубликуйте код, который вы попробовали. –

Смежные вопросы