La API de calendario de Zend Gdata devuelve "La versión 3.0 no es compatible".
Frecuentes
Visto 909 veces
0
Recibir el siguiente error al realizar una búsqueda de calendario simple:
Expected response code 200, got 403
Version 3.0 is not supported.
El código se ve así:
Oauth
$options = array(
'requestScheme' => Zend_Oauth::REQUEST_SCHEME_HEADER,
'version' => '1.0',
'signatureMethod' => 'HMAC-SHA1',
'consumerKey' => $config['consumer_key'],
'consumerSecret' => $config['consumer_secret']
);
/**
* Create HTTP Client object which adds OAuth Authorization
* headers to outbound requests.
*/
$this->_consumer = new Zend_Oauth_Consumer($options);
$this->_token = new Zend_Oauth_Token_Access();
$this->_http_client = $this->_token->getHttpClient($options);
Consulta de calendario
$calendarClient = new Zend_Gdata_Calendar(Oauth::I()->getHttpClient());
print $calendarClient->getMajorProtocolVersion();
$query = $calendarClient->newEventQuery();
$query->setUser('default');
$query->setVisibility('private');
$query->setProjection('full');
Oauth::I()->setRequestorId($query);
try {
$list = $calendarClient->getCalendarEventEntry($query);
var_dump($list);
} catch(Exception $e) {
var_dump($e->getMessage());
}
var_dump($calendarEventsFeed);
Al volcar $calenderClient bajo los encabezados de recursos Zend_Http_Client_Adapter_Socket:
["gdata-version"]=>
array(2) {
[0]=>
string(13) "GData-Version"
[1]=>
string(3) "3.0"
}
sin embargo, getMajorProtocolVersion() devuelve 1.
1 Respuestas
0
La solución es establecer encabezados () en el cliente HTTP cada vez que necesite cambiar la versión de GData. Estoy seguro de que hay un método específico para esto, pero esto funciona.
// $http_client is Zend_Oauth_Token_Access()::getHttpClient()
$http_client->setHeaders('GData-Version', '2.0');
contestado el 23 de mayo de 12 a las 07:05
No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas php google-api google-apps-marketplace or haz tu propia pregunta.