仅检索带有数字的联系人

时间:2014-09-11 08:24:41

标签: php codeigniter google-app-engine google-contacts

我已经构建了一个从您的Google帐户中提取联系人的应用。但是,我只能使用有电话号码的联系人。

我考虑过拔掉所有联系人,然后过滤掉那些没有数字的联系人,但我一次只能拨打100个联系人(否则会返回一个空的结果),这意味着如果只有3个在100个联系人中有电话号码,它只显示3.如果有10 000个联系人要筛选,这将成为一个繁琐的过程。

这是我当前的请求网址:

https://www.google.com/m8/feeds/contacts/default/full?max-results=100&alt=json&v=3.0&oauth_token='.$accesstoken

如果它有任何区别,应用程序是用PHP(CodeIgniter)构建的。

有什么方法可以让我最初打电话给谷歌只是回复那些带有电话号码的联系人?

2 个答案:

答案 0 :(得分:2)

如果最初的查询不包含足够的联系人,为什么不发出多个查询?您可以使用start-index来偏移后续查询:https://developers.google.com/google-apps/contacts/v3/reference#Parameters

答案 1 :(得分:1)

我通过检查响应中是否有next链接并再次调用相同的函数来做到这一点,并将该链接作为附加参数。

foreach($result['feed']['link'] as $link) {
    if($link['rel'] == 'next') {
        $url = $link['href'] . '&oauth_token='.$accesstoken;
        $this->googleimport($url);
    }
}

需要注意的是,您需要手动添加oauth_token。这花了我很多年才弄明白,我只是在比较了我的开始链接和从响应中检索到的链接后才意识到。

然后检查我是否已经有一个accessstoken,如果该令牌有效,则检索下一组记录。我将所有记录保存到临时数据库并从那里完成所有处理。