Php Google drive api文件已上载但未列出

Php Google drive api文件已上载但未列出,php,web-services,google-api,google-drive-api,Php,Web Services,Google Api,Google Drive Api,我是谷歌驱动api的新手。。我正在将文件从我的服务器上传到谷歌硬盘 在我的gmail账户里我有 创建服务帐户,下载密钥并上载到服务器 提供对驱动器Api和SDK Api的访问 添加了一个控制器以与google通信,具体如下: set_include_path(get_include_path() . PATH_SEPARATOR . ROOT .DS. "vendors"); require_once('Google/Client/Google_Client.php');

我是谷歌驱动api的新手。。我正在将文件从我的服务器上传到谷歌硬盘

在我的gmail账户里我有

  • 创建服务帐户,下载密钥并上载到服务器
  • 提供对驱动器Api和SDK Api的访问
  • 添加了一个控制器以与google通信,具体如下:

        set_include_path(get_include_path() . PATH_SEPARATOR . ROOT .DS. "vendors");
        require_once('Google/Client/Google_Client.php');
        require_once('Googl
    
  • e/Client/contrib/Google_DriveService.php')

    现在,这个的输出如下所示:

    [kind] => drive#file
    [id] => 0B-NwgyCI2GQENkswOHVNcVl2aDQ
    [etag] => "11QSOvUX6KZKZVB6nCB3GloLTJQ/MTM5MDU2MzUwNTU2OQ"
    [selfLink] => https://www.googleapis.com/drive/v2/files/0B-NwgyCI2GQENkswOHVNcVl2aDQ
    [webContentLink] => https://docs.google.com/uc?id=0B-NwgyCI2GQENkswOHVNcVl2aDQ&export=download
    [alternateLink] => https://docs.google.com/file/d/0B-NwgyCI2GQENkswOHVNcVl2aDQ/edit?usp=drivesdk
    [iconLink] => https://ssl.gstatic.com/docs/doclist/images/icon_10_text_list.png
    [title] => Any sample file title
    [mimeType] => text/plain
    [description] => An experiment to upload text file via server to server
    [labels] => Array
        (
            [starred] => 
            [hidden] => 
            [trashed] => 
            [restricted] => 
            [viewed] => 1
        )
    
    [createdDate] => 2014-01-24T11:38:25.679Z
    [modifiedDate] => 2014-01-24T11:38:25.569Z
    [modifiedByMeDate] => 2014-01-24T11:38:25.569Z
    [lastViewedByMeDate] => 2014-01-24T11:38:25.569Z
    [parents] => Array
        (
            [0] => Array
                (
                    [kind] => drive#parentReference
                    [id] => 0AONwgyCI2GQEUk9PVA
                    [selfLink] => https://www.googleapis.com/drive/v2/files/0B-NwgyCI2GQENkswOHVNcVl2aDQ/parents/0AONwgyCI2GQEUk9PVA
                    [parentLink] => https://www.googleapis.com/drive/v2/files/0AONwgyCI2GQEUk9PVA
                    [isRoot] => 1
                )
    
        )
    [downloadUrl] => https://doc-04-60-docs.googleusercontent.com/docs/securesc/lptjog45u94o44tbsu1586vcuinvv74h/mlvse3i90c59eb4q6ggg7d4c6v6q4hfd/1390557600000/03476129820556261866/03476129820556261866/0B-NwgyCI2GQENkswOHVNcVl2aDQ?h=16653014193614665626&e=download&gd=true
        [userPermission] => Array
            (
                [kind] => drive#permission
                [etag] => "11QSOvUX6KZKZVB6nCB3GloLTJQ/-HVXFUAxHplEpHWK6MSWEcIX7d8"
                [id] => me
                [selfLink] => https://www.googleapis.com/drive/v2/files/0B-NwgyCI2GQENkswOHVNcVl2aDQ/permissions/me
                [role] => owner
                [type] => user
            )
    
        [originalFilename] => Any sample file title
        [fileExtension] => 
        [md5Checksum] => 2c06987d6ae9cfcd7060c68f4356231a
        [fileSize] => 31
        [quotaBytesUsed] => 31
        [ownerNames] => Array
            (
                [0] => sdsdsdswrwew@developer.myemail.com
            )
    
        [owners] => Array
            (
                [0] => Array
                    (
                        [kind] => drive#user
                        [displayName] => dsdadasd3@developer.myemail.com
                        [isAuthenticatedUser] => 1
                        [permissionId] => 03476129820556261866
                    )
    
            )
    
        [lastModifyingUserName] => 89989989889@developer.myemailid.com
        [lastModifyingUser] => Array
            (
                [kind] => drive#user
                [displayName] => my_display_name
                [isAuthenticatedUser] => 1
                [permissionId] => 03476129820556261866
            )
    
        [editable] => 1
        [copyable] => 1
        [writersCanShare] => 1
        [shared] => 
        [appDataContents] => 
    

    现在主要的问题是,通过该api上传的文件没有列在我的google drive文件列表中,但如果我查询我帐户中的可用文件,我只会得到通过该api上传的文件列表,而不是我在google drive界面中手动创建的文件列表

    查看我的代码以获取文件列表

       .....................
                $client = new Google_Client();
                $key = file_get_contents(KEY_FILE);
                $client->setClientId(CLIENT_ID);
                $client->setAssertionCredentials(new Google_AssertionCredentials(
                  SERVICE_ACCOUNT_NAME,
                  array('https://www.googleapis.com/auth/drive'),
                  $key)
                );
    
                $service = new Google_DriveService($client);
        ....................
    
                $files = $service->files->listFiles();
    
    现在有问题:

  • 为什么我的谷歌硬盘列表中没有列出这些文件
  • 为什么我在谷歌控制台中创建的服务帐户被视为不同的用户。eg文件列表与原始用户不同,原始用户文件未列在api列出的文件中
  • 请让我知道我哪里做错了,也请让我知道我正在努力实现的目标是否可能。我为web应用程序创建了一个服务帐户,而不是
    客户端ID
    ,因为脚本将在没有任何用户界面的情况下自动运行


    请建议……

    为什么我的谷歌硬盘列表中没有列出这些文件?

    因为它们不属于你。它们属于服务帐户

    为什么我在谷歌控制台中创建的服务帐户被视为不同的用户。

    因为这就是服务帐户的功能,即它是自己的用户


    如果希望上载的文件位于自己的驱动器内容中,则需要使用自己的帐户凭据访问驱动器SDK。这不需要涉及用户交互。您只需获取一次刷新令牌,然后使用该令牌生成驱动器的访问令牌。

    为什么我的google驱动器列表中没有列出这些文件?

    因为它们不属于你。它们属于服务帐户

    为什么我在谷歌控制台中创建的服务帐户被视为不同的用户。

    因为这就是服务帐户的功能,即它是自己的用户


    如果希望上载的文件位于自己的驱动器内容中,则需要使用自己的帐户凭据访问驱动器SDK。这不需要涉及用户交互。您只需获取一次刷新令牌,然后使用该令牌生成驱动器的访问令牌。

    Hi pinoyyid。。。是否有任何方式我可以共享或传输这些文件到其他用户帐户通过任何api。。。我在哪里可以查看应用程序文件是的,它们可以像其他文件一样共享。“应用程序文件”是什么意思?是指我在谷歌控制台中创建的应用程序id。。谢谢,现在我按照你说的做。。。你认为这对我有用吗?是的,可以。请注意,文档始终假定用户将验证自己的驱动器帐户。您的情况是,您正在使用自己的帐户,因此用户无权这样做。您当然需要对用户进行身份验证。嗨,pinoyyid。。。是否有任何方式我可以共享或传输这些文件到其他用户帐户通过任何api。。。我在哪里可以查看应用程序文件是的,它们可以像其他文件一样共享。“应用程序文件”是什么意思?是指我在谷歌控制台中创建的应用程序id。。谢谢,现在我按照你说的做。。。你认为这对我有用吗?是的,可以。请注意,文档始终假定用户将验证自己的驱动器帐户。您的情况是,您正在使用自己的帐户,因此用户无权这样做。当然,您需要以某种方式对用户进行身份验证。
       .....................
                $client = new Google_Client();
                $key = file_get_contents(KEY_FILE);
                $client->setClientId(CLIENT_ID);
                $client->setAssertionCredentials(new Google_AssertionCredentials(
                  SERVICE_ACCOUNT_NAME,
                  array('https://www.googleapis.com/auth/drive'),
                  $key)
                );
    
                $service = new Google_DriveService($client);
        ....................
    
                $files = $service->files->listFiles();