Python 驱动器API请求中未列出任何Google驱动器文件

Python 驱动器API请求中未列出任何Google驱动器文件,python,google-drive-api,google-api-python-client,Python,Google Drive Api,Google Api Python Client,我正在尝试使用桌面应用程序获取谷歌硬盘中的文件列表。代码如下: def main(argv): storage = Storage('drive.dat') credentials = storage.get() if credentials is None or credentials.invalid: credentials = run(FLOW, storage) # Create an httplib2.Http object to

我正在尝试使用桌面应用程序获取谷歌硬盘中的文件列表。代码如下:

def main(argv):

    storage = Storage('drive.dat')
    credentials = storage.get()

    if credentials is None or credentials.invalid:
        credentials = run(FLOW, storage)

    # Create an httplib2.Http object to handle our HTTP requests and authorize it
    # with our good Credentials.
    http = httplib2.Http()
    http = credentials.authorize(http)

    service = build("drive", "v2", http=http)
    retrieve_all_files(service)
然后在“检索所有文件”中,我打印文件:

param = {}
if page_token:
    param['pageToken'] = page_token
    files = service.files().list(**param).execute()
    print files

但在我对我的帐户进行身份验证后,打印的文件列表中没有任何项目。有人有类似的问题或知道解决方法吗?

如果我错了,请纠正我,但我相信您使用的是
https://www.googleapis.com/auth/drive.file
scope,它仅返回应用程序已创建或已使用或显式打开的文件

要检索所有文件,您需要使用更广泛的范围:
https://www.googleapis.com/auth/drive


要了解有关不同作用域的更多信息,请查看。

首先,您需要遍历page_令牌,以获取我的驱动器以及任何子文件夹的所有内容。还有一些事情可能太像不提供查询等。请尝试以下方法:

def retrieve_all_files(service):
    """ RETURNS a list of files, where each file is a dictionary containing
        keys: [name, id, parents]
    """

    query = "trashed=false"

    page_token = None
    L = []

    while True:
        response = service.files().list(q=query,
                                             spaces='drive',
                                             fields='nextPageToken, files(id, name, parents)',
                                             pageToken=page_token).execute()
        for file in response.get('files', []):  # The second argument is the default
            L.append({"name":file.get('name'), "id":file.get('id'), "parents":file.get('parents')})

        page_token = response.get('nextPageToken', None)  # The second argument is the default

        if page_token is None:  # The base My Drive folder has None
            break

    return L

你能粘贴所有的文件吗?它看起来像是一个有用的函数。@AliAfshar,你可以在这里找到它:我已经尝试了你的建议,但返回的列表中仍然没有内容……源代码是否在任何地方可用,以便我们可以尝试复制?更改作用域时,请确保删除
drive.dat
,因为它可能会使用未被批准用于更广泛作用域的旧令牌。