2010-10-09 12 views
0

J'ai travaillé avec l'API PHP pour google Calendar, et j'ai été très frustré.Problèmes Google Agenda EventId (PHP Api)

J'ai téléchargé le paquet avec zend toutes les bibliothèques de la page de Google, et ont travaillé en dehors du code fourni pour vous assurer qu'il peut répondre à mes besoins.

Le problème que je rencontre consiste à récupérer un événement du système. Le code fourni inclut une démo avec la fonction getEvent ($ clientId, $ eventId), qui, en fonction de la documentation et de la lecture du code, devrait renvoyer un événement de mon calendrier qui correspond à l'ID fourni.

Alors dans mes tests, je crée un nouvel événement, puis j'essaie de le récupérer. Cependant, chaque fois que je récupère l'événement, Zend_data_Gdata_App_HttpException est:

function processPageLoad() 
{ 
    global $_SESSION, $_GET; 
    if (!isset($_SESSION['sessionToken']) && !isset($_GET['token'])) { 
     requestUserLogin('Please login to your Google Account.'); 
    } else { 
     $client = getAuthSubHttpClient(); 
     $id = createEvent ($client, 'Tennis with Beth', 
     'Meet for a quick lesson', 'On the courts', 
     '2010-10-20', '10:00', 
     '2010-10-20', '11:00', '-08'); 
     $newEvent = getEvent($client, $id); 
    } 
} 

le code pour createEvent() est:

function createEvent ($client, $title = 'Tennis with Beth', 
$desc='Meet for a quick lesson', $where = 'On the courts', 
$startDate = '2008-01-20', $startTime = '10:00', 
$endDate = '2008-01-20', $endTime = '11:00', $tzOffset = '-08') 
{ 
    $gc = new Zend_Gdata_Calendar($client); 
    $newEntry = $gc->newEventEntry(); 
    $newEntry->title = $gc->newTitle(trim($title)); 
    $newEntry->where = array($gc->newWhere($where)); 

    $newEntry->content = $gc->newContent($desc); 
    $newEntry->content->type = 'text'; 

    $when = $gc->newWhen(); 
    $when->startTime = "{$startDate}T{$startTime}:00.000{$tzOffset}:00"; 
    $when->endTime = "{$endDate}T{$endTime}:00.000{$tzOffset}:00"; 
    $newEntry->when = array($when); 

    $createdEntry = $gc->insertEvent($newEntry); 
    return $createdEntry->id->text; 
} 

Et enfin est le code pour GetEvent():

function getEvent($client, $eventId) 
{ 
    $gdataCal = new Zend_Gdata_Calendar($client); 
    $query = $gdataCal->newEventQuery(); 
    $query->setUser('default'); 
    $query->setVisibility('private'); 
    $query->setProjection('full'); 
    $query->setEvent($eventId); 

    try { 
     $eventEntry = $gdataCal->getCalendarEventEntry($query); 
     return $eventEntry; 
    } catch (Zend_Gdata_App_Exception $e) { 
     var_dump($e); 
     return null; 

} 

}

Répondre

0

nous avons le même problème, il suffit de partager ma solution. puisque vous attribuez $ id = createEvent() $ id aura une valeur URL. alors vous utilisez $ id getEvent ($ client, $ id);

la solution est que getCalendarEventEntry() peut avoir une requête $ ou tout simplement une URL.

function getEvent($client, $eventId) 
{ 
    $gdataCal = new Zend_Gdata_Calendar($client); 

    try { 
     $eventEntry = $gdataCal->getCalendarEventEntry($eventId); 
     return $eventEntry; 
    } catch (Zend_Gdata_App_Exception $e) { 
     var_dump($e); 
     return null; 
} 

Espérons que ça aide !!

+0

Je suis récemment tombé sur un autre site Web, mais c'est tout à fait vrai, alors je vais vous abandonner. Merci d'avoir répondu. – user321605