【问题标题】:List Contacts from a group from Zend GData从 Zend GData 的组中列出联系人
【发布时间】:2012-01-17 01:44:55
【问题描述】:

感谢您的阅读。

我的问题是我正在尝试使用 Zend_Gdata_Query 获取属于 GData 中某个组的联系人列表。

使用

$query = new Zend_Gdata_Query('http://www.google.com/m8/feeds/contacts/default/full/?group=http://www.google.com/m8/feeds/groups/xxx...xxx/base/XXX');
$feed = $gdata->getFeed($query);

给我一​​个“未知的授权标头”。

$query = new Zend_Gdata_Query('http://www.google.com/m8/feeds/contacts/default/full/');
$query->setParam('group', 'http://www.google.com/m8/feeds/groups/XXX...XXX/base/XXX');
$feed = $gdata->getFeed($query);

是一样的。

显然没有那个参数我得到了所有的联系人。

我已经尝试使用 URL 中的参数的第一种方法,并使用修改后的 CakePHP 核心 HttpSocket 扩展,它正在工作。所以我认为问题在于 Zend 从 url 中剥离参数,但我没有运气查看库。

感谢您的帮助。

【问题讨论】:

  • 使用 $query->setParam('max-results', '10'); 时同样的问题或 $query->setMaxResults(10);所以我认为问题在于我如何使用 Zend 库......

标签: php zend-framework cakephp gdata-api google-contacts-api


【解决方案1】:
$query->setParam('group', 'http://www.google.com/m8/feeds/groups/myemail%40gmail.com/base/xxxxxxxxxxxxxx');

xxxxxxxxxxxxxx = 组 ID

【讨论】:

    【解决方案2】:

    如上所述,如果您将 max-results 添加到查询字符串中,如下所示: http://www.google.com/m8/feeds/contacts/default/full?max-results=1000

    请注意,即使在 google 文档中,获得所有结果的唯一方法是为返回的结果数量“设置一个高数字”。所以你永远不能明确指定'ALL'

    【讨论】:

      【解决方案3】:

      我猜您正在使用 3-legged OAuth。然后您需要在调用 getFeed() 之前添加下一行: $gdata->getHttpClient()->setRequestScheme(Zend_Oauth::REQUEST_SCHEME_QUERYSTRING); 它将解决“未知授权标头”错误。

      对我来说使用 $query->setParam('group', 'http://www.google.com/m8/feeds/groups/XXX...XXX/base/XXX'); 返回另一个错误:“组参数的值无效:XXXXXXXXXX”,我仍然不知道如何修复它:(

      【讨论】:

      • 您的解决方案有效(我设置了 setMaxResults(10))!非常感谢!正如你一样,我也需要拉一个小组:我会及时通知你。
      • setParam('group', ... ) 出现同样的问题。
      • 解决方法是将查询参数放在 URL 中:$query = new Zend_Gdata_Query('google.com/m8/feeds/contacts/default/full?group=http://…);
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多