google drive API返回的资源不足

时间:2018-09-20 07:18:56

标签: google-api google-drive-api google-drive-realtime-api

我现在正在开发一款可以跟踪Google云端硬盘中的更改并获取每个更改的最后一个修饰符名称的软件。我通过访问每个文件的修订并使用Google Drive API从修订资源中提取“ lastModifyingUser”来实现此目的。

但是,我发现返回修订版资源仅包含“种类”,“ id”,“ mimetype”和“ modifiedTime”。当我尝试使用.get('lastModifyingUser')时,我什么也没有。这很令人困惑。我也尝试使用.list(),它仍然返回相同的结果。我将在下面附加我的代码,以便您检查可能的问题。

# Call seleted files revisions
revisions = []
for i in range (len(seleted_files_week) - 1):
    try:
        # revisions.append(service.revisions().list(fileId = seleted_files_week[i][3]).execute().get('revisions'))
        revisions.append(service.revisions().get(fileId = seleted_files_week[i][3],revisionId = 1).execute())
    except:
        print("error")
我得到的部分返回值
[{'kind': 'drive#revision', 'id': '1', 'mimeType': 'application/vnd.google-apps.document', 'modifiedTime': '2018-08-16T06:18:41.664Z'}, {'kind': 'drive#revision', 'id': '1', 'mimeType': 'application/vnd.google-apps.document', 'modifiedTime': '2018-09-05T02:11:35.423Z'}]

1 个答案:

答案 0 :(得分:1)

  • 您要使用lastModifyingUser从文件中检索service.revisions().list()

如果我的理解是正确的,那么该修改如何?

修改点:

  • 从您的问题来看,您似乎正在使用Drive API v3。因此,为了使用lastModifyingUser从文件中检索service.revisions().list(),它使用revisions/lastModifyingUser作为fields

修改后的脚本:

请进行如下修改。

从:
revisions.append(service.revisions().list(fileId = seleted_files_week[i][3]).execute().get('revisions'))
至:
revisions.append(service.revisions().list(fileId = seleted_files_week[i][3], fields = "revisions/lastModifyingUser").execute().get('revisions'))

注意:

  • 如果您还想检索其他元数据,请告诉我。

参考文献:

如果我误解了你的问题,对不起。