Итак, я разобрался, как получить токен доступа от Google с помощью библиотеки Zend_Oauth в 1.10. Теперь допустим, я хочу получить мои контакты ...
$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)
Google возвращает 401 с "Неизвестным заголовком авторизации".
Так возможно ли указать параметры при использовании Zend_GData с токеном Oauth? Или мне придется создавать свои собственные запросы, а затем использовать Zend_Feed (или какой-либо другой XML / Feed disctor) для анализа?