Google Contacts V3,仅检索 GMail 联系人
Google Contacts V3, retrieving GMail contacts only
我有以下代码可以正常工作。但问题是该呼叫检索了数千个联系人(大多数只有电子邮件)。我只想下载 GMail 中 "Contacts" 选项卡中列出的那些联系人。我必须设置一个高值 "NumberToRetrieve",然后必须过滤除电子邮件以外的更多信息。
Dim cr As New ContactsRequest(settings)
Dim query As New ContactsQuery(ContactsQuery.CreateContactsUri("default"))
query.NumberToRetrieve = 5000
query.OrderBy = ContactsQuery.OrderByLastModified
query.SortOrder = ContactsQuery.SortOrderDescending
Dim f As Feed(Of Contact) = cr.Get(Of Contact)(query)
和往常一样,这个 Google API 也设计得很糟糕。至少在 API 的 .Net 包装器中,我没有看到任何可用于仅检索 GMail 联系人或添加过滤器(例如 "where Address exists")的内容。有任何输入吗?
编辑
根据反馈,我滚动浏览了所有联系人组以找到组 "Contacts"。
Dim groupquery As New GroupsQuery(GroupsQuery.CreateGroupsUri("default"))
Dim fgrp As Feed(Of Group) = cr.Get(Of Group)(groupquery)
Dim GroupAtomId As String = ""
For Each gr In fgrp.Entries
If gr.Title.Contains("Contacts") Then
GroupAtomId = gr.Id
Exit For
End If
Next
然后使用了 GroupAtomId,query.Group = GroupAtomId
。似乎工作正常。
我有以下代码可以正常工作。但问题是该呼叫检索了数千个联系人(大多数只有电子邮件)。我只想下载 GMail 中 "Contacts" 选项卡中列出的那些联系人。我必须设置一个高值 "NumberToRetrieve",然后必须过滤除电子邮件以外的更多信息。
Dim cr As New ContactsRequest(settings)
Dim query As New ContactsQuery(ContactsQuery.CreateContactsUri("default"))
query.NumberToRetrieve = 5000
query.OrderBy = ContactsQuery.OrderByLastModified
query.SortOrder = ContactsQuery.SortOrderDescending
Dim f As Feed(Of Contact) = cr.Get(Of Contact)(query)
和往常一样,这个 Google API 也设计得很糟糕。至少在 API 的 .Net 包装器中,我没有看到任何可用于仅检索 GMail 联系人或添加过滤器(例如 "where Address exists")的内容。有任何输入吗?
编辑
根据反馈,我滚动浏览了所有联系人组以找到组 "Contacts"。
Dim groupquery As New GroupsQuery(GroupsQuery.CreateGroupsUri("default"))
Dim fgrp As Feed(Of Group) = cr.Get(Of Group)(groupquery)
Dim GroupAtomId As String = ""
For Each gr In fgrp.Entries
If gr.Title.Contains("Contacts") Then
GroupAtomId = gr.Id
Exit For
End If
Next
然后使用了 GroupAtomId,query.Group = GroupAtomId
。似乎工作正常。