2010-10-18 9 views
2

Hey, j'ai joué avec l'implémentation de GDATA_Calendar dans Zend Framework et j'ai réussi à créer des sous-calendriers.API GData Partager Calendrier Zend

Cependant, j'ai eu des problèmes en partageant dynamiquement ces calendriers avec les utilisateurs.

En consultant les documents officiels de Google (http://code.google.com/apis/calendar/data/2.0/developers_guide_protocol.html#UpdateAcl), il semble possible de modifier la liste de contrôle d'accès sur un calendrier donné pour permettre le partage avec utilisateurs particuliers.

Malheureusement, je n'arrive pas à faire fonctionner cela.

Vous avez même essayé de générer mon propre client et de définir les types rawdata et enc mais il semble que l'implémentation de GDATA écrase les types de contenu?

$client = Zend_Gdata_ClientLogin::getHttpClient($this->user, $this->pass, Zend_Gdata_Calendar::AUTH_SERVICE_NAME); 
      $client->setMethod("POST"); 
      $client->setUri($appURL . "?alt=json"); 
      $client->setEncType("application/json"); 
      $client->setRawData('{' 
    . '"data": {' 
    . '"scope": "[email protected]",' 
    . '"scopeType": "user",' 
    . '"role": "editor"' 
    . '}' 
    . '}"', "application/json"); 
      Zend_Debug::dump($client); 
     $response = $client->request(); 


     Zend_Debug::dump($response); 

La réponse obtenue montre

object(Zend_Http_Response)#558 (5) { 
    ["version":protected] => string(3) "1.1" 
    ["code":protected] => int(415) 
    ["message":protected] => string(22) "Unsupported Media Type" 
    ["headers":protected] => array(9) { 
    ["Content-type"] => string(24) "text/html; charset=UTF-8" 
    ["Date"] => string(29) "Mon, 18 Oct 2010 05:10:23 GMT" 
    ["Expires"] => string(29) "Mon, 18 Oct 2010 05:10:23 GMT" 
    ["Cache-control"] => string(18) "private, max-age=0" 
    ["X-content-type-options"] => string(7) "nosniff" 
    ["X-frame-options"] => string(10) "SAMEORIGIN" 
    ["X-xss-protection"] => string(13) "1; mode=block" 
    ["Server"] => string(3) "GSE" 
    ["Connection"] => string(5) "close" 
    } 
    ["body":protected] => string(73) "Content-Type application/x-www-form-urlencoded is not a valid input type." 
} 

Comme vous pouvez le voir, il ne semble même pas être accepter le type de contenu spécifié?

Toute aide serait grandement appréciée

Répondre

0
$data = " 
    <entry xmlns='http://www.w3.org/2005/Atom' xmlns:gAcl='http://schemas.google.com/acl/2007'> 
     <category scheme='http://schemas.google.com/g/2005#kind' term='http://schemas.google.com/acl/2007#accessRule'/> 
     <gAcl:scope type='user' value='{$accountEmail}'></gAcl:scope> 
     <gAcl:role value='http://schemas.google.com/gCal/2005#editor'> 
     </gAcl:role> 
    </entry> 
"; 

$response = $this->service->post(trim($data), $appURL); 

bien - a trouvé la réponse .. sa conclusion cette petite fonction dans l'objet de service gdata et à l'aide que pour pousser tout avec les en-têtes.

Espérons que cela aide quelqu'un

Questions connexes