感谢阅读。
我的问题是我正在尝试使用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中删除了参数,但我没有看到这些库的运气。
感谢您的帮助。
答案 0 :(得分:3)
$query->setParam('group', 'http://www.google.com/m8/feeds/groups/myemail%40gmail.com/base/xxxxxxxxxxxxxx');
xxxxxxxxxxxxxx =组ID
答案 1 :(得分:1)
如上所述,如果将max-results添加到查询字符串中,它也会起作用: http://www.google.com/m8/feeds/contacts/default/full?max-results=1000
请注意,即使在Google文档中,获取所有结果的唯一方法是为返回的结果数量设置一个“高数字”。所以你永远不能明确指定'ALL'
答案 2 :(得分:0)
我猜您使用的是三脚架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”,我仍然不知道如何解决它:(