API Google Диска - Изменения: список. Получение исходного идентификатора удаленного файла
При попытке обнаружить удаленные объекты с помощью ленты изменений: список, я заметил, что значение 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
Ни один из идентификаторов (fileId
и id
) не равен id
из файла "Это тестовый файл". Я прочитал в документации по API, что результаты расположены снизу вверх, но ни одно из удаленных изменений не содержит мой исходный идентификатор файла.
Как я узнаю, какой файл был удален?
РЕДАКТИРОВАТЬ: Я создал видео, показывающее мои проблемы, шаги
- Я создаю новый файл (непосредственно перед началом видео)
- Я показываю его идентификатор в списке изменений:
- Я удаляю этот файл
- Я создаю другой файл
- Я показываю идентификатор файла в списке изменений:
- Список изменений: показывает мой первый идентификатор файла и сразу после этого создается второй идентификатор файла. Не отображается событие удаления файла
Https://www.youtube.com/watch?v=hh2ARFdxWGk
Извините за плохое качество, я использовал плохой инструмент записи экрана
2 answers
Вы можете попробовать использовать API активности приложений вместо изменений. Я только что протестировал API активности приложений, и как корзина, так и пустая корзина отображаются как события. Обозреватель API дает вам представление о том, как этого добиться.
Во-первых, записи в ленте изменений упорядочены в возрастающем хронологическом порядке. То есть самые старые изменения появляются первыми. Поэтому проверьте последние записи в ответе.
Вы также можете попробовать это в Обозревателе API. Получите первый набор списка, и для получения последних изменений вы можете либо получить nextPageToken
из ответа, либо largestChangeId
из последнего изменения в списке и получить следующий набор изменений.
Надеюсь, это поможет!