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

Извините за плохое качество, я использовал плохой инструмент записи экрана

Author: Martijn Nosyncerror, 2015-06-19

2 answers

Вы можете попробовать использовать API активности приложений вместо изменений. Я только что протестировал API активности приложений, и как корзина, так и пустая корзина отображаются как события. Обозреватель API дает вам представление о том, как этого добиться.

 2
Author: Jay Lee, 2015-07-03 17:08:19

Во-первых, записи в ленте изменений упорядочены в возрастающем хронологическом порядке. То есть самые старые изменения появляются первыми. Поэтому проверьте последние записи в ответе.

Вы также можете попробовать это в Обозревателе API. Получите первый набор списка, и для получения последних изменений вы можете либо получить nextPageToken из ответа, либо largestChangeId из последнего изменения в списке и получить следующий набор изменений.

Надеюсь, это поможет!

 1
Author: KRR, 2015-06-19 21:41:49