【问题标题】:Retrieve only contacts with numbers仅检索带有数字的联系人
【发布时间】:2014-09-11 08:24:40
【问题描述】:

我已经构建了一个应用程序,可以从您的 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) 构建的。

有什么方法可以让我第一次致电 google 以返回那些带有电话号码的联系人?

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

    • 最后这就是我所做的。应该回答我自己的问题。赞成建议它。
    【解决方案2】:

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

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

    需要特别注意的是,您需要手动添加oauth_token。我花了很长时间才弄清楚,在将我的起始链接与从响应中检索到的链接进行比较后,我才意识到这一点。

    然后检查我是否已经有一个访问令牌以及该令牌是否有效,然后检索下一组记录。我将所有记录保存到一个临时数据库并从那里进行所有处理。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-04-08
      • 1970-01-01
      • 1970-01-01
      • 2016-02-10
      • 1970-01-01
      • 2010-11-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多