0

并感谢您的阅读。

我的问题是我正在尝试使用 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 中剥离参数,但我没有运气查看库。

谢谢你的帮助。

4

3 回答 3

3
$query->setParam('group', 'http://www.google.com/m8/feeds/groups/myemail%40gmail.com/base/xxxxxxxxxxxxxx');

xxxxxxxxxxxxxx = 组 ID

于 2012-01-16T17:44:55.250 回答
1

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

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

于 2010-09-27T19:23:32.533 回答
0

我猜你正在使用 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”,我仍然不知道如何修复它:(

于 2010-06-18T16:46:19.707 回答