Права доступа к файлу Google Drive API (team drive) в php для любого пользователя или определенного домена

На 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 файлов в папке как «общедоступное» (т. Е. Любой, у кого есть ссылка, может увидеть его), потому что я отправляю 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, вызывающий эти ссылки и размещающий контент в другой службе. Есть ли способ заставить эту работу? Таким образом, мне не придется беспокоиться о правах доступа к файлам (в обратном порядке).

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]