谷歌云端硬盘API,用IFRAME预览文件

问题描述 投票:1回答:1

我需要我的谷歌驱动器文件的预览,是我的档案,但是是私人的,但我不想在我的帐户登录到预览文件,我怎么可以使用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);

我需要这个webViewLink把在I帧,但没有要求登录时,我在webViewLink进入

php google-api google-drive-sdk google-oauth google-api-php-client
1个回答
0
投票

让我们考虑私人用户数据。由例如用户所拥有的数据文件上传到您的谷歌驱动器帐户。谁可以看到这些文件只有一个是谁有权访问它们的用户。我不能只是去到你的驱动器帐户并访问您的个人资料。

OAuth2用户为我们提供了一个方法可以授予应用程序(客户端)访问我们的个人数据。当你想使用你登录到您的谷歌账号的应用,并出现一个提示同意画面中授予您的数据的应用程序访问。如果应用程序(客户端)请求离线访问,他们将给出他们可以使用在任何时候要求一个访问令牌来访问你的数据刷新令牌。这样,应用程序验证自身,以谷歌为你。如果没有刷新令牌代码将提示用户请求权限来访问他们的数据,它的应用程序并不需要因为你已经授予其再次提示。

随着访问令牌的应用程序将能够访问谷歌驱动API和存储的数据。这无关与谷歌驱动的Web应用程序。

访问私人用户数据

如果用户有问题谁拥有网络链接已被授予该文件或者文件是公共接入webViewLink才会工作。他们将被提示登录,如果他们不已经登录所以只要确保你有确定与用户的文件。

记住OAuth是用于授予对一个用户的数据应用程序的访问。您访问这些数据虽然一个API。你不能使用,除非你创建的文件预览自己的应用程序programmaticly预览文件。你不会是能够在谷歌驱动的Web应用程序预览文件。用户需要登录到自己的账户申请上看到谷歌驱动的Web应用程序文件。

当前登录的用户

请运行下面的语句它会告诉你,你当前登录的用户。

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

没有被记录在你,你不能访问谷歌驱动器登录使用您的刷新令牌。

© www.soinside.com 2019 - 2024. All rights reserved.