Php 使用Oauth令牌时在Zend_GData中指定参数?

Php 使用Oauth令牌时在Zend_GData中指定参数?,php,zend-framework,oauth,gdata-api,gdata,Php,Zend Framework,Oauth,Gdata Api,Gdata,因此,我在1.10中找到了如何使用Zend_Oauth库从Google获得访问令牌。现在让我们假设我想得到我的联系人 $config = array( 'consumerKey' => 'zzz', 'signatureMethod' => 'HMAC-SHA1', 'consumerSecret' => 'xxx' ); $token = unserialize($_SESSION['GOOGLE_ACCESS_TOKEN']); $

因此,我在1.10中找到了如何使用Zend_Oauth库从Google获得访问令牌。现在让我们假设我想得到我的联系人

  $config = array(
      'consumerKey' => 'zzz',
      'signatureMethod' => 'HMAC-SHA1',
'consumerSecret' => 'xxx'
  );

  $token = unserialize($_SESSION['GOOGLE_ACCESS_TOKEN']);


$client = $token->getHttpClient($config);
$client->setMethod(Zend_Http_Client::GET);
// $client->setParameterGet('max-results', '10000');

$gdata = new Zend_Gdata($client);
$gdata->setMajorProtocolVersion(3);

$query = new Zend_Gdata_Query('http://www.google.com/m8/feeds/contacts/default/full');

// $query->MaxResults=100;

$feed = $gdata->getFeed($query);
$feed
是一个有25个联系人的可爱对象。但如果我想在一次拉动中获得更多,似乎没有一种方法可以指定最大结果

如果我取消注释
client->setParameterGet
,它将被忽略。如果我指定
$client->setUri
并使用
$rawdata=client->request()
来获取响应,那么它会起作用,但是在处理返回的提要数据时会出现其他问题。。。比如把它放进GData里,以便处理

我尝试了
$feed=$gdata->importString($rawdata->getBody())
但是当
$rawdata->getBody()
返回似乎有效的XML时,
$feed->totalResults
抛出错误,而如果我使用
$gdata->getFeed($query)
则不会

如果我取消注释
$query->MaxResults=100使用
$gdata->getFeed($query)
谷歌返回一个带有“未知授权头”的401


那么,在使用Zend_GData和Oauth令牌时是否可能指定参数?或者我必须构建自己的请求,然后使用Zend_Feed(或其他XML/Feed解析器)进行解析吗?

将用于AuthSub的过程与OAuth混合使用有点棘手。我做了一些挖掘。到目前为止,我可以下载我所有的联系人像这样

$client = $token->getHttpClient($config);
$client->setMethod(Zend_Http_Client::GET);
$client->setUri('http://www.google.com/m8/feeds/contacts/default/full/');
$client->setParameterGet('max-results', '10000');
$client->setParameterGet('v','3');
$bfeed = $client->request();
看起来我们之间的主要区别在于我在
$client->setUri('http://www.google.com/m8/feeds/contacts/default/full/');
并以不同方式设置我的版本。但是我可以得到
$bfeed
body()
属性,它给了我245k的XML来解析

我的问题是,当我通过这个方法拉下一个联系人的提要时,我得到了一个错误


一、 和你一样,我也在努力解决这个问题,所以请用任何适合你的方式回复。

我完全无法获得全部联系人列表,只有25个。。。使用Gdata和如下查询时,参数似乎不起作用:

$http  = $token->getHttpClient($oauthOptions);
$gdata = new Zend_Gdata($http, 'MY APP');
$gdata->setMajorProtocolVersion(3);
$gdata->getHttpClient()->setRequestScheme(Zend_Oauth::REQUEST_SCHEME_QUERYSTRING);


$query = new Zend_Gdata_Query('http://www.google.com/m8/feeds/contacts/default/full?max-results=10');
$query->setMaxResults(10);
$query->maxResults = 10;
$feed = $gdata->getFeed($query);
所以我,;我也很喜欢在这里找到答案。如果你们中的任何一个有任何进展。请邮寄:-) 谢谢