Google通讯录V3,仅检索GMail联系人

时间:2015-02-09 16:21:42

标签: google-contacts

我有以下代码可以正常工作。但问题是该调用检索了数千个联系人(大多数只有电子邮件)。我只想下载"联系人"中列出的那些联系人。 GMail中的标签。我不得不设置一个高" 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联系人或添加过滤器的内容,例如"其中地址存在"。有什么输入吗?

修改

根据反馈,我滚动浏览所有联系人群组以查找群组"通讯录"。

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。似乎工作正常。

1 个答案:

答案 0 :(得分:2)

要从Contacts中的Gmail标签中检索所有联系人,您必须在查询中指定组值(Grouphere以及检索只是Contacts Gmail标签中的联系人,组值只有Contacts,如图所示here

希望有所帮助!