【问题标题】:Determine number of contacts with Google People API使用 Google People API 确定联系人数量
【发布时间】:2016-04-25 00:41:28
【问题描述】:

我正在使用 Google People API 来获取用户的连接,由于结果不包括电子邮件地址、电话号码等,因此在我调用 people.connections.list 并检索到总共 50 个结果后,我正在轮询people:batchGet 为用户获取数据(一次最多只能接受 50 个用户)。这很好用,在循环几次结果后,我可以导入所有联系人。太好了!

但是由于这种设置和循环的需要(毕竟有些用户有数千个连接),我正在使用一个过程(基本上)一遍又一遍地重定向,直到我们完成。这也很好,但我很想在重定向屏幕上显示一个进度条,为了做到这一点,我需要知道用户拥有的连接总数。我似乎找不到任何方法来确定 people.connections.list 可以返回的总结果数(前提是没有传入过滤器或同步令牌)。有谁知道一种方法可以确定我们需要用 people.connections.list 循环的总连接数?

【问题讨论】:

  • 您是否也从联系人列表中获取“其他联系人”?
  • 不,我只获取主要联系人。

标签: google-people-api


【解决方案1】:

您使用什么语言?这在 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}

【讨论】:

  • 我正在使用 PHP。您的伪代码将获得我假设的连接列表的大小,但我所追求的是没有指定限制的连接总数。例如假设用户有 4500 个联系人,我获取了其中的 50 个 - 我获取了大约 1% 的联系人。然后我再买 50 个,最多 2%,依此类推。我正在寻找的是一种从 API 中确定 4500 值的方法,我似乎找不到。
【解决方案2】:

列表响应中有一个最近添加的 totalItems 字段,它应该返回列表中的总人数。

但是,更好的解决方法是您应该在request mask 中为列表调用请求电子邮件地址、电话号码等

【讨论】:

  • totalItems 是获取计数的正确方法(并因此实现进度条)。 RequestMask 不会帮助您使用进度条,但会帮助限制返回的响应对象中的字段数量。顺便说一句,为什么这个答案被否决了?答案中唯一需要的编辑是删除“更好的解决方法是”
猜你喜欢
  • 1970-01-01
  • 2021-04-30
  • 1970-01-01
  • 1970-01-01
  • 2020-12-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-07
相关资源
最近更新 更多