установка права доступа к файлу Google Drive для «любого, кто имеет ссылку на доступ» дает 403. как решить? - PullRequest
0 голосов
/ 06 сентября 2018

Выполнение запроса API
making the api request

403 ответа
403 response

Я хочу установить разрешенияна мой файл Google Drive программно, как будто у кого-то есть ссылка на Google Drive, чтобы он мог читать.После установки role как reader и type как anyone попытка API дает мне 403.любая помощь будет оценена.Пожалуйста, обратитесь к изображениям выше.

часть моего ответа HTTP GET

    "userPermission":{  
      "kind":"drive#permission",
      "etag":"\"v8V6DvTBE_bfiGlEO9jLLdDEcEE/vrb4MS7MSuazJcKlWO78yMuKxF0\"",
      "id":"me",
      "selfLink":"https://www.googleapis.com/drive/v2/files/1Vnp6v2VSE3sHKb9H9ChJPc8VPozuVtyd/permissions/me",
      "role":"owner",
      "type":"user"
   },
   "originalFilename":"1200px-Arriva_T6_nearside.JPG",
   "fileExtension":"JPG",
   "md5Checksum":"52f04535ea275c8be7ad87853a49fb87",
   "fileSize":"343589",
   "quotaBytesUsed":"343589",
   "ownerNames":[  
      "Dev Drive"
   ],
   "owners":[  
      {  
         "kind":"drive#user",
         "displayName":"Dev Drive",
         "isAuthenticatedUser":true,
         "permissionId":"00918695921514386946",
         "emailAddress":"devdrive@finetechlk.net"
      }
   ],

1 Ответ

0 голосов
/ 10 сентября 2018
{
 "error": {
  "errors": [
   {
    "domain": "global",
    "reason": "insufficientFilePermissions",
    "message": "The user does not have sufficient permissions for this file."
   }
  ],
  "code": 403,
  "message": "The user does not have sufficient permissions for this file."
 }
}

Означает, что текущий аутентифицированный пользователь не имеет прав доступа к файлу. Пользователь не может предварительно выполнить действие с файлом, на который у него нет прав.

Я предлагаю вам сделать File.get для идентификатора файла, с которым вы работаете, и посмотреть, какие разрешения имеет текущий аутентифицированный пользователь для этого файла. Вы также сможете увидеть владельца файла.

Обратите внимание, что файл, с которым я тестирую, был передан мне другим пользователем. У меня нет права собственности на него, и я не могу создать для него разрешения.

  {
   "kind": "drive#user",
   "displayName": "xxx",
   "photoLink": "xxx",
   "me": false,
   "permissionId": "x642264676680223635",
   "emailAddress": "xxxxx@gmail.com"
  }

Установка публичного файла не создает публичную ссылку для чтения. В зависимости от типа файла он может содержать webViewLink, но это относится не ко всем типам файлов.

Решение

Как решить ваши 403. Найдите пользователя, которому принадлежит файл с идентификатором, который вы используете, и попросите его вставить разрешения. Или вставьте разрешения для файла, которым владеет текущий пользователь.

...