微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Google People API:搜索特定群组中的联系人并在特定时间后更新联系人

如何解决Google People API:搜索特定群组中的联系人并在特定时间后更新联系人

我正在将我们的代码Google Contacts API 迁移到 Google People API,因为 Google Contacts API 很快就会被弃用,但我注意到新的 People API 很容易与旧的 Contacts API 进行比较。

例如,我们有以下代码使用旧的 Contacts API 在特定的联系人组中进行搜索,并在特定日期后通过传入 GroupStartDate 参数进行更新,但现在我们可以不要使用新的 People API 执行相同的查询

我的问题是在新的 People API 中,有什么方法可以搜索特定群组中的联系人并只获取在特定日期之后更新的联系人吗?

我看到一个使用 syncToken 的问题,但我认为这对我们来说不是一个好的解决方案。 Option to get the contact entries updated after a specific time NOT given in Google People API

                GData.Contacts.ContactsFeed Feed = service.Query(
                    new GData.Contacts.ContactsQuery("https://www.google.com/m8/Feeds/contacts/default/full/")
                    {
                        OAuthRequestorId = employeeUserEmail,Group = [contact group url],NumberToRetrieve = FetchSize,StartIndex = 1,StartDate = [a date that only get contacts were modified after it],});

解决方法

我认为他们有意从使用时间戳方法(给我自 2021 年 1 月 1 日以来更新的所有联系人)改为使用 SyncToken 方法。

SyncToken 消除了任何可能导致数据丢失的竞争条件。 例如,如果在查询正在进行时更新了联系人,这会导致该联系人是否包含在下一个查询中的竞争条件,这可能会导致数据更改未同步并且下一次同步将被覆盖。

因此,如果您要进行全新同步,或超过 7 天未同步,只需通过以下方式获取群组的所有联系人:contactGroups.get。 如果上次同步时间少于 7 天,请使用同步令牌仅获取更新的联系人。

您可能会获取某个群组的所有联系人,然后运行通过 sources.updateTime 进行过滤的循环,但同样存在数据丢失的风险。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。