2010-10-09 1 views
0

Я работаю с PHP api для Google Calendar и очень разочаровываюсь.Проблемы с Google Calendar EventId (PHP Api)

Я загрузил пакет zend со всеми библиотеками на странице Google и работал с предоставленным кодом, чтобы убедиться, что он соответствует моим требованиям.

Проблема, с которой я сталкиваюсь, связана с возвратом события из системы. Предоставленный код включает демонстрацию с функцией getEvent ($ clientId, $ eventId), которая на основе документации и чтения кода я ожидаю вернуть событие, которое находится в моем календаре, которое соответствует предоставленному идентификатору.

Так что в моих тестах я создаю новое событие, а затем пытаюсь его восстановить. Тем не менее, всякий раз, когда я получить событие, Zend_data_Gdata_App_HttpException является:

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

код для CreateEvent() является:

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; 
} 

И, наконец, код 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; 

} 

}

ответ

0

у нас та же проблема, просто поделитесь моим решением. поскольку вы назначаете $ id = createEvent() $ id будет иметь значения URL. то вы используете $ id getEvent ($ client, $ id);

Решение состоит в том, что getCalendarEventEntry() может иметь $ query или просто 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; 
} 

Надеюсь, это поможет!

+0

Я натолкнулся на это недавно с другого сайта, но это точно так, я отдаю его вам. Спасибо, что ответили. – user321605