谷歌与联系人的API API
在尝试使用用户的Google帐户获取联系人时,我在使用人API后面临一些问题。它只返回列出的所有电子邮件地址中的几个。访问令牌和所有范围已经正确设置。 代码如下:谷歌与联系人的API API
People peopleService = new People.Builder(httpTransport, jsonFactory, credential)
.build();
ListConnectionsResponse response = peopleService.people().connections().list("people/me")
.setPageSize(500).setSortOrder("FIRST_NAME_ASCENDING")
.setAccessToken(tokenResponse.getAccessToken())
.setAlt("json")
.setRequestMaskIncludeField("person.names,person.emailAddresses,person.phoneNumbers")
. execute();
connections = response.getConnections();
取而代之的是,如果我使用谷歌的API接触,然后我越来越没有电子邮件地址,比对people.Code接触API的:
URL feedUrl = new URL("https://www.google.com/m8/feeds/contacts/default/full");
ContactFeed resultFeed = myService.getFeed(feedUrl, ContactFeed.class);
// Print the results
System.out.println(resultFeed.getTitle().getPlainText());
for (ContactEntry entry : resultFeed.getEntries()) {
....
.....
.......
}
我想知道如果他们之间有什么区别,哪一个我必须用于更好的结果,或者我错过了什么。请建议。谢谢..!!
人API是最新的。 People API通过Google's blog announcement阅读,简化了对Google+ API和Contacts API进行单独调用所需的内容。现在你只需要使用一个。
“新人们API使用最新的协议和技术,并 最终将取代其使用的GData 协议联系人API”
当得到用户的list of connections,一定要指定correct scopes当使用它。
https://www.googleapis.com/auth/contacts
- 要求为您的应用程序授予对已验证用户的Google通讯录中联系人的读写权限。 https://www.googleapis.com/auth/contacts.readonly
- 请求向您的应用授予对经过身份验证的用户的Google通讯录中联系人的读取访问权限。
在People API和Contacts API之间检查此link for similarities and differences。
我已经正确添加了所有的范围,但人们api没有给予太多的不。作为联系人API的联系人的电子邮件地址。 – Ankur1994a
我不知道是否有与Java代码的任何问题,但如果你看一下将送出请求时,它应该是这样的:
我能使用正确的电子邮件和名称获取所有联系人。如果你谷歌“管理谷歌联系人”,你会看到一个联系人列表。从那里取这个数字,并打印出应该匹配的连接数。您只需确保pageSize足够大或者您必须处理分页以获取所有联系人。
另外我意识到requestMask.includeField对于您放置的参数和空间非常敏感。 “person.name,person.email_addresses”工作和“person.name,person.email_addresses”没有。
使用旧的联系人API,你可以查询q参数,我不认为人api提供这种能力。我认为通过关键词筛选搜索的能力对于减少请求大小非常重要。
查看https://people.googleapis.com/$discovery/rest?version=v1为您提供支持的架构和方法。 – darewreck