Как проверить, доступен ли файл Google Диска кому-либо, у кого есть ссылка на файл с API Google Диска?

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

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' объекта разрешения. Но я каждый раз получаю значение «пользователь». Но файл уже доступен всем, у кого есть ссылка (с помощью API разрешений Google Диска, и я могу видеть его содержимое). Я ожидал «любой» в качестве значения свойства «тип». Не могли бы вы сообщить нам свои мысли.


person Suyog Baldota    schedule 24.08.2018    source источник


Ответы (1)


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

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

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

person Ruben Lopez    schedule 24.08.2018
comment
Спасибо, @Rubén López. Моя проблема решена с помощью API «список» вместо «получить» для ресурса разрешений. - person Suyog Baldota; 27.08.2018