Bir Oauth Token kullanırken Zend_GData Parametreler belirtme?

2 Cevap php

Yani, 1.10 Zend_Oauth kütüphanesi kullanarak Google'dan bir erişim belirteci almak için nasıl anladım. Şimdi benim kişileri almak istiyorum Diyelim ki ...

  $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 kişi ile güzel bir nesnedir. Ben tek bir çekişle daha fazla almak istiyorsanız Ancak, çalışır max sonuçlarını belirten bir yol olarak görünmüyor.

Ben yorumsuz client->setParameterGet bunu göz ardı. I $client->setUri belirtmek ve $rawdata = client->request() yanıt almak için kullanabilirsiniz, ama sonra başka konular için kolay GData içine almak gibi ... geri geliyor besleme veri işleme ile kırpmak eğer çalışıyor taşıma.

Ben {[kullanılmış olmaz ise ederken ($feed = $gdata->importString($rawdata->getBody()) çalıştı ama $rawdata->getBody() geçerli XML gibi görünüyor ne döner iken, $feed->totalResults bir hata atar ettik 3)]}.

I $query->MaxResults=100; $gdata->getFeed($query) Google "Bilinmeyen yetkilendirme başlık" ile 401 döndürür kullanın. Yorumsuz

Yani bir Oauth belirteci ile Zend_GData kullanırken parametrelerini belirlemek için muhtemelen nedir? Ya da ben kendi istekleri kurmak zorunda gidiyorum, sonra ayrıştırma için Zend_Feed (veya bazı diğer XML / Yem dissektörü) kullanabilir?

2 Cevap

Bu OAuth ile AuthSub ile çalışmak anlamına geliyordu bir karıştırma işlemi biraz zor. Ben biraz araştırma yaptım. Şimdiye kadar bu gibi bütün kişileri indirmek için alabilirsiniz ...

$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();

Aramızdaki temel fark I $client->setUri('http://www.google.com/m8/feeds/contacts/default/full/'); olarak Feed URL belirtmeniz ve farklı benim sürümü ayarlamak gibi görünüyor. Ama ben $bfeed in body() özelliği alabilirsiniz ve bana incelemek için XML 245K verir.

Benim sorunum bu yöntemle tek bir kişinin besleme aşağı çekiyorum, ben bir hata alıyorum olmasıdır.

Ben, senin gibi, bu anlamaya çalışıyorum, bu yüzden sizin için çalışır bir şey ile cevap lütfen.

Tamamen kişiler sadece 25 tüm listesi alınamıyor ... parametreler GData ve bu gibi sorguyu kullanarak çalışmak için görünmüyor:

$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);

so i;m really into finding answers here as well. If either of you gets anything working. please post :-) thanks