Php 使用Oauth令牌时在Zend_GData中指定参数?
因此,我在1.10中找到了如何使用Zend_Oauth库从Google获得访问令牌。现在让我们假设我想得到我的联系人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']); $
$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);
所以我,;我也很喜欢在这里找到答案。如果你们中的任何一个有任何进展。请邮寄:-)
谢谢