使用域共享联系人API获取所有域共享联系人时出现奇怪的行为

时间:2015-08-11 08:26:48

标签: google-admin-sdk

当我尝试使用共享联系人API检索所有域共享联系人时,我一直在努力解决问题

根据此页面:https://developers.google.com/admin-sdk/domain-shared-contacts/#Retrieving 用于检索所有域共享联系人的API是:

GET https://www.google.com/m8/feeds/contacts/example.com/full

我的问题是,当我在我的应用程序中实现此调用时,它不会返回所有联系人,而是会返回我所拥有的联系人的一部分...

例如,我使用API​​创建了大约200个共享联系人,当我想输入新电子邮件或浏览目录时我可以看到它们,但是当我使用API​​调用来检索所有这200个联系人时,我在返回的结果中只能得到大约20-30个......

我尝试过这些命令组合:

wget https://www.google.com/m8/feeds/contacts/DOMAINNAME_COM/full?access_token=ACCESS_TOKEN

curl -i https://www.google.com/m8/feeds/contacts/DOMAINNAME_COM/full -H "Authorization: Bearer ACCESS_TOKEN"

即使是来自浏览器的直接请求,也可以在地址栏中键入API调用,如下所示:

https://www.google.com/m8/feeds/contacts/DOMAINNAME_COM/full?access_token=ACCESS_TOKEN

但我仍然只得到了整个~200个联系对象的20-30个条目...

我非常感谢任何帮助和指导,因为我对此感到有点沮丧...

问候
萨利赫

1 个答案:

答案 0 :(得分:1)

要获得此功能,您可以在使用query parameters检索联系人时使用max-results查询参数。但是,有一些constraints适用于共享联系人数据API。如果响应超过10MB,则会被截断。

  

注意:在一个响应中,Feed的返回量不会超过10MB。尝试这样做会导致截断数据。有关限制返回结果数的信息,请参阅使用查询参数检索联系人中的max-results查询参数。您可以通过重复跟踪返回的Feed的下一个链接来检索整个联系人列表,直到找不到这样的链接。

所以基本上你应该做几个请求,以便使用max-results查询参数和feed的下一个链接来获取所有联系人。

希望有所帮助!