Возможность обновления контактов через определенное время, НЕ указанное в Google People API.

Мы используем API контактов Google, чтобы получать записи контактов, которые обновляются через определенное время, чтобы сохранить обновленную копию контактов на нашей стороне.

В Google Contacts API есть возможность обновить записи контактов через определенное время с помощью updated-min параметр запроса.

GET https://www.google.com/m8/feeds/contacts/default/full?updated-min=2007-03-16T00:00:00

В Google People API не указана опция для такого случая в документации Google People. Мне что-то не хватает или эта функция не предоставляется?


person Ranjani    schedule 04.05.2021    source источник
comment
Я не вижу никакой документации по этому поводу. Похоже, что страница параметров запроса уже была обновлена ​​и раньше сканировалась с помощью архива. Сайты был сентябрь 2020 года (уже вроде то, что сейчас). Я хотел бы предположить (если это не было подтверждено другими пользователями путем тестирования и обеспечения работы) эта функция все еще не реализована.   -  person NaziA    schedule 04.05.2021
comment
Хотя, похоже, есть альтернатива, как показано в руководстве по миграции, и вы можно использовать update_time. Поскольку Контакты устарели и их действие запланировано на 15 июня 2021 г., лучше попытаться заставить их работать с помощью update_time, получив все записи контактов, а затем отфильтровав их по их update_time. Это может быть самое близкое, над чем вам, возможно, придется поработать.   -  person NaziA    schedule 04.05.2021
comment
Лучше отфильтровать их, получив последнее обновленное время человека (контакта), которое указано в исходный параметр объекта Person. Но вроде как лишняя работа. Чтобы получить около 10 контактов, которые были обновлены в последний раз, необходимо получить все контакты (максимальный лимит - 25 000).   -  person Ranjani    schedule 05.05.2021


Ответы (1)


Если вы пытаетесь реализовать инкрементную синхронизацию, когда вы хотите, чтобы все контакты были изменены (или созданы / удалены) с момента последней синхронизации, то вместо использования объекта времени вы можете использовать syncToken.

Это работает так: сначала вы вызываете people.connections.list без syncToken и с requestSyncToken true. Последняя страница ответа будет включать поле syncToken, которое вы можете отправлять в будущих people.connections.list вызовах, чтобы получить только те ресурсы, которые были изменены с момента последнего запроса.

См. Это: https://developers.google.com/people/api/rest/v1/people.connections/list#query-parameters

person marmor    schedule 05.05.2021
comment
Да, попробовал сегодня утром. Оно работает! Единственный недостаток заключается в том, что мы должны поддерживать синхронизацию каждые 7 дней (самое большее), поскольку срок действия syncToken истекает через 7 дней. Поэтому, если мы предоставляем заказчику индивидуальное время синхронизации, оно должно быть в пределах 7 дней. - person Ranjani; 05.05.2021
comment
Я думаю, что это задумано, поэтому время от времени вам придется выполнять полную синхронизацию, чтобы убедиться, что никакие изменения не ускользнули из трещин ... - person marmor; 05.05.2021