Как проверить, доступен ли файл Google Drive кому-либо, имеющему ссылку на файл с Google Drive API? - PullRequest
0 голосов
/ 24 августа 2018

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

function printPermission($service, $fileId, $permissionId) {
  try {
    $permission = $service->permissions->get($fileId, $permissionId);

    print "Name: " . $permission->getName();
    print "Role: " . $permission->getRole();
    $additionalRoles = $permission->getAdditionalRoles();
    if(!empty($additionalRoles)) {
      foreach($additionalRoles as $additionalRole) {
        print "Additional role: " . $additionalRole;
      }
    }
  } catch (Exception $e) {
    print "An error occurred: " . $e->getMessage();
  }
}

Я попытался проверить 'type' свойство объекта разрешения. Но я каждый раз получаю значение user. Но файл уже доступен всем, у кого есть ссылка (с помощью API разрешений Google Диска, и я вижу его содержимое). Я ожидал, что в качестве значения свойства type указывается значение «любой». Пожалуйста, дайте нам знать ваши мысли.

1 Ответ

0 голосов
/ 24 августа 2018

Вам нужно использовать permissions->list вместо permissions->get.Использование permissions->get Я предполагаю, что вы отправляете ID пользователя от разрешения.

Используя permissions->list вам просто нужно отправить идентификатор файла, и вы получите список разрешений.Затем повторите этот список и проверьте, содержит ли один из них type: anyone (в вашем случае вы даже можете проверить id: anyoneWithLink).

Ссылка: https://developers.google.com/drive/api/v3/reference/permissions/list

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...