В Google API Explorer Я попытался указать правильный идентификатор файла в drive.permissions.create.Я установил для SupportTeamDrives значение true и тело запроса с ролью: reader и type: anybody.Это просто дает мне ошибку:
{
"error": {
"errors": [
{
"domain": "global",
"reason": "invalidLinkVisibility",
"message": "Bad Request. User message: \"\""
}
],
"code": 400,
"message": "Bad Request. User message: \"\""
}
}
То же самое происходит в моем PHP-коде.Вот как можно ближе, что выглядит правильно для меня:
...
$userPermission = new Google_Service_Drive_Permission( array(
'type' => 'anyone',
'role' => 'reader',
));
$service->permissions->create( $imageId, $userPermission, array(
'supportsTeamDrives' => true,
));
...
Я не могу найти ничего об ошибке:
invalidLinkVisibility
Что мне нужно сделать, так это временно установить разрешение для 20-50 файлов в папке на «public» (т. Е. Любой, у кого есть ссылка, может его увидеть), потому что я отправляю webContentLink (или webViewLink, у меня нет)Я не понял, какой из них мне нужно использовать) в другой API, чтобы загрузить туда изображения.Как только это будет сделано, я хотел бы удалить публичный доступ.Один из вариантов - установить для публичного доступа разрешение (с рекурсивным публичным доступом) на папку.Я просто не могу понять, как я могу изменить (или, скорее, добавить) права доступа к файлу в Google Drive API в PHP.
Альтернативой этому будет наличие некоторыхспособ получить изображение через URL с включенным токеном, например,
$source = $files.$image1;
$context = stream_context_create( array(
'https' => array(
'header' => 'Authorization: Bearer '. $token
)
) );
$image = file_get_contents( $source, false, $context );
, где $ token является токеном аутентификации для аутентификации службы, $ files равен https://drive.google.com/a/file/d/ и $ image1 являетсяидентификатор файла.Конечно, пытаясь это сделать, я должен сначала войти в свою учетную запись Google, которая не будет работать, так как у меня будет другой API, вызывающий эти ссылки и размещающий контент в другой службе.Есть ли способ сделать эту работу?Таким образом, мне не придется беспокоиться о правах доступа к файлам (назад-вперед).