Google 驱动器 API - 更改:列表。获取已删除文件的原始 ID

Google Drive API - Changes: list. Getting the original ID of a deleted file

尝试使用“更改:列表”提要检测已删除的对象时,我注意到 id 值不正确,因此我无法检测删除了哪个文件。示例:

制作新的测试文件:这是一个测试文件

public 'title' => string 'This is a test' (length=14)
public 'id' => string '1wUFHe3DfU1mJnyqlIgAYSvMrIy8F91-7rZyAPFsyVpg' (length=44)

现在,当我删除此文件时,删除更改的第一个条目是:

public 'deleted' => boolean true
protected 'fileType' => string 'Google_Service_Drive_DriveFile' (length=30)
protected 'fileDataType' => string '' (length=0)
public 'fileId' => string '1_8Cvirw71AY0HQoaNwSMP3TlcIFAhpZikVfOrXFZCLo'        (length=44)
public 'id' => string '3612' (length=4)
public 'kind' => string 'drive#change' (length=12)
public 'modificationDate' => string '2013-12-23T10:55:45.340Z' (length=24)
public 'selfLink' => string 'https://www.googleapis.com/drive/v2/changes/3612' (length=48)
  protected 'modelData' => 
    array (size=0)
      empty
  protected 'processed' => 
    array (size=0)
      empty

None 的标识符(fileIdid)等于文件 'This is a test file' 中的 id。我在 API 文档中读到结果是自下而上的,但没有任何已删除的更改包含我的原始文件 ID。

我怎么知道哪个文件被删除了?

编辑:我制作了一个视频来展示我的问题、步骤

https://www.youtube.com/watch?v=hh2ARFdxWGk

录屏工具不好,画质不好请见谅

首先,更改提要中的条目按时间升序排列。也就是说,最早的更改首先出现。因此,请检查响应中的最后一个条目。

您也可以在 API explorer 中尝试此操作。获取第一组列表并获取最新更改,您可以从响应中获取 nextPageToken 或从列表中的最后一个更改中获取 largestChangeId 并获取下一组更改。

希望对您有所帮助!

您可以尝试使用 Apps Activity API instead of Changes. I just tested with Apps Activity API and both trash and emptyTrash show as events. The API Explorer 让您了解如何实现这一目标。