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

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

php,yii,google-api,google-drive-sdk,google-client,

1

Ответов: 1


0

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

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

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

PHP, Yii, Google-API, Google-диск-SDK, Google-клиент,
Похожие вопросы