Проблемы с EventId Календаря Google (PHP Api) - PullRequest
0 голосов
/ 09 октября 2010

Я работал с PHP API для Google Calendar, и меня это очень расстраивало.

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

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

Итак, в своих тестах я создаю новое событие, а затем пытаюсь получить его.Однако всякий раз, когда я получаю событие, 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;

}

}

1 Ответ

0 голосов
/ 13 ноября 2010

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...