2016-04-25 82 views
1

我使用Google People API来获取用户的连接,并且因为结果中不包含电子邮件地址,电话号码等,所以我在调用people.connections.list和检索总共有50个结果我在轮询人员:batchGet为用户提取数据(一次最多只能接受50个用户)。这工作正常,并在结果循环几次后,我可以导入所有的联系人。大!使用Google People API确定联系人的数量

但由于这种设置和循环的需要(一些用户终究有成千上万的连接),我正在使用一个过程(基本上)重复导向,直到完成。这也工作得很好,但我很想在重定向屏幕上显示进度条,为了做到这一点,我需要知道用户拥有的连接总数。我似乎无法找到任何方法来确定people.connections.list可能返回的总结果数(如果没有过滤器或同步令牌传入)。有谁知道一种方式,我可以确定总共有多少连接,我们需要循环与people.connections.list?

+0

你还可以获得从联系人列表中“其他联系人”? – heffaklump

+0

不,我只提取主要联系人。 –

回答

0

你在用什么语言?这在Java中适用于我。

// Get the user's connections 
ListConnectionsResponse r = peopleService.people().connections() 
     .list("people/me") 
     .setPageSize(500) 
     // specify fields to be returned 
     .setRequestMaskIncludeField("person.names,person.emailAddresses") 
     .execute(); 

List<Person> connections = r.getConnections(); 
System.out.println(connections.size()); 

您还可以添加哪些字段被列入如果使用这样的URL:

https://people.googleapis.com/v1/people/me/connections?pageSize=500&requestMask.includeField=person.names%2Cperson.emailAddresses&key={YOUR_API_KEY} 
+0

我正在使用PHP。您的伪代码会得到我假设的连接列表的大小,但是我之后的连接总数没有指定限制。例如假设用户有4500个联系人,我可以获取其中的50个联系人 - 我已经提取了大约1%的联系人。然后我再拿50美元,我高达2%,等等。我正在寻找的是一种从API中确定4500的价值的方法,我似乎无法找到它。 –

-2

有一个最近添加totalItems领域上作出的回应应返回的总人数在列表中。

然而,更好的解决方法是,你应该要求电子邮件地址,电话号码等在request mask的名单呼叫

+0

'totalItems'是获取计数的正确方法(并因此实施进度条)。 'RequestMask'不会帮助您进度条,但会帮助限制返回的响应对象中的字段数量。顺便说一下,为什么这个答案是低调的?答案中唯一需要的编辑是删除“更好的解决方法是” – kunal