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 的标识符(fileId
和 id
)等于文件 'This is a test file' 中的 id
。我在 API 文档中读到结果是自下而上的,但没有任何已删除的更改包含我的原始文件 ID。
我怎么知道哪个文件被删除了?
编辑:我制作了一个视频来展示我的问题、步骤
- 我创建了一个新文件(就在视频开始之前)
- 我在 Changes: 列表中显示了它的 ID
- 我删除这个文件
- 我创建另一个文件
- 我在 Changes: 列表中显示文件 ID
- 更改:列表显示我的第一个文件 ID,紧接着是第二个创建的文件 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 让您了解如何实现这一目标。
尝试使用“更改:列表”提要检测已删除的对象时,我注意到 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 的标识符(fileId
和 id
)等于文件 'This is a test file' 中的 id
。我在 API 文档中读到结果是自下而上的,但没有任何已删除的更改包含我的原始文件 ID。
我怎么知道哪个文件被删除了?
编辑:我制作了一个视频来展示我的问题、步骤
- 我创建了一个新文件(就在视频开始之前)
- 我在 Changes: 列表中显示了它的 ID
- 我删除这个文件
- 我创建另一个文件
- 我在 Changes: 列表中显示文件 ID
- 更改:列表显示我的第一个文件 ID,紧接着是第二个创建的文件 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 让您了解如何实现这一目标。