Google Drive API, файл предварительного просмотра с iframe - PullRequest
0 голосов
/ 07 февраля 2019

Мне нужен предварительный просмотр файлов на моем диске Google, они являются моими архивами, но являются частными, но я не хочу входить в свою учетную запись для предварительного просмотра файла, как я могу использовать Oauth-аутентификацию для предварительного просмотра файлов? Если да, то как?Я могу сделать это. Я пытаюсь сгенерировать webContentLink, но мне тоже нужно войти в систему, спасибо

    $url_array = explode('?', 'My url permited');
    $url = $url_array[0];
    $client = new Google_Client();
    $client->setClientId('My client ID');
    $client->setClientSecret('My client secret');
    $client->setRedirectUri($url);
    $client->setScopes(array('https://www.googleapis.com/auth/drive'));
    $client->setAccessType('offline');
    $client->setState('offline');
    $client->refreshToken('My refresh token with Oauth playground');
    $service = new Google_Service_Drive($client);

и после подключения через API я делаю выгрузку на гугл диск

        $content = file_get_contents($_FILES["file"]["tmp_name"]);//pega o conteudo do arquivo
    $file = $service->files->create($fileMetadata, array(//função para inserir aonde tem 2 parametros,metadados e  conteudo/tipo e etc do arquivo
        'data' => $content,
        'mimeType' => 'application/octet-stream',
        'uploadType' => 'multipart',
        'fields' => 'id,webViewLink,webContentLink,thumbnailLink'));
    printf("File ID: %s\n", $file->id);

IМне нужен этот webViewLink для добавления в Iframe, но без запроса входа в систему, когда я вхожу в webViewLink

1 Ответ

0 голосов
/ 08 февраля 2019

Рассмотрим личные данные пользователя.Данные, принадлежащие пользователю, например, файлы, которые вы загружаете в свою учетную запись Google Drive.Единственный, кто может видеть эти файлы - это пользователи, которые имеют к ним доступ.Я не могу просто перейти к вашей учетной записи диска и получить доступ к вашим личным данным.

Oauth2 дает нам возможность предоставить приложениям (клиентам) доступ к нашим личным данным.Если вы хотите использовать приложение, вы входите в свою учетную запись Google и получаете экран подтверждения, чтобы предоставить приложению доступ к вашим данным.Если приложение (клиент) запросило автономный доступ, ему будет выдан токен обновления, который он может использовать в любое время для запроса токена доступа для доступа к вашим данным.Таким образом, приложение аутентифицирует себя в Google как вы.Без маркера обновления ваш код будет запрашивать у пользователя разрешение на доступ к его данным, при этом приложению не нужно будет повторять запрос, поскольку вы уже предоставили его.

С помощью маркера доступа приложение будетиметь возможность доступа к интерфейсу API Google Drive и сохраненным данным.Это не имеет ничего общего с веб-приложением Google Drive.

доступ к личным данным пользователя

webViewLink будет работать только в том случае, если соответствующему пользователю, имеющему веб-ссылку, предоставлен доступ к файлу или файл является общедоступным.Им будет предложено войти в систему, если они еще не вошли в систему, поэтому просто убедитесь, что у вас есть файлы с пользователями.

Помните, что Oauth используется для предоставления вашему приложению доступа к данным пользователей.Вы получаете доступ к этим данным через API.Вы не можете программно просматривать файлы, используя, если вы не создадите свое собственное приложение для предварительного просмотра файлов.Вы не сможете просматривать файлы в веб-приложении Google Диска.Пользователи должны будут войти в приложение со своими собственными учетными записями, чтобы просмотреть файлы в веб-приложении Google Drive.

Текущий пользователь, вошедший в систему

Пожалуйста, запустите следующее утверждение, чтобы показать вам, что вы вошли в систему как.

$service->about->GetAbout(array('fields' => '*'));

Вы не можете получить доступ к Google Drive без входа в систему. Вы вошли в систему, используя свой токен обновления.

...