Google Calendar / PHP новый вопрос - PullRequest
0 голосов
/ 06 июня 2011

Я искал информацию через API Календаря Google, документы Zend и здесь, и почти все, что я нахожу, делает предположения о том, что я уже знаю о PHP, поэтому я просто теряюсь , У меня большой опыт программирования ... с ... эм ... вариантом FORTH. Тем не мение! Я пытаюсь передать вывод сценария PHP, который можно использовать для получения всех важных данных из события календаря в указанном варианте FORTH. Что толкает меня вверх по стене, так это то, что я не могу понять, как получить что-то столь же простое, как UID сообщения. Вот с чем я работаю:

function outputCalendar($client) 
{
  $gdataCal = new Zend_Gdata_Calendar($client);
  $eventFeed = $gdataCal->getCalendarEventFeed();
  foreach ($eventFeed as $event) {
    echo $event->title->text .  " (" . $event->id->text . ")\n";
    foreach ($event->when as $when) {
      echo $when->startTime . "\n";
    }
  }
}

Это основано на примере кода, который они мне дали, и вместо того, чтобы форматировать с помощью XML-тегов, как в примере, просто помещает каждый из них в отдельную новую строку (что мне проще перенести на другой язык.)

Теперь я попытался добавить echo $when->startTime . "\n"; в цикл, но он просто говорит мне:

Неустранимая ошибка: необработанное исключение «Zend_Gdata_App_InvalidArgumentException» с сообщением «Идентификатор свойства не существует» в /var/mucktools/Zend/Gdata/App/Base.php:484

Итак, очевидно, я собираюсь захватить UID в неправильном направлении. Теперь вот в чем дело. Эти две строки:

    echo $event->title->text .  " (" . $event->id->text . ")\n";
      echo $when->startTime . "\n";

... извлекают данные из события. Тем не менее, «название». «text», «startTime» - все выглядит как вещи, извлеченные из заднего плана. Я знаю, познавательно, что это не может быть правдой. Здесь есть библиотека и API. Но я хочу знать, где я могу найти список всего дерьма, которое я могу извлечь из $ event, и каков синтаксис для этого. Кто-нибудь может мне помочь с этим?

И прежде чем вы спросите, да, у меня есть очень веская причина, чтобы взять вывод PHP-скрипта и вставить его в неясный вариант FORTH. И нет, нет другого способа, который не будет более сложным, чем этот. Я сделал здесь домашнее задание.

1 Ответ

0 голосов
/ 07 июня 2011

Я уверен, что вы прочитали документацию для Zend Gdata .Он говорит вам, что вам нужно предоставить getCalendarEventFeed () с объектом Zend_Gdata_Query, в противном случае я думаю, что вы просто получите общедоступные данные.

Тогда ваш код должен выглядеть примерно так: -

$service = Zend_Gdata_Calendar::AUTH_SERVICE_NAME;
$user = "user@gmail.com";
$pass = "userpassword";
$client = Zend_Gdata_ClientLogin::getHttpClient($user, $pass, $service);

$gDataCal = new Zend_Gdata_Calendar($client);
$query = $gDataCal->newEventQuery();
$query->setVisibility('private');
$query->setProjection('full');
$query->setOrderby('starttime');
$query->setFutureevents('true');
$eventFeed = $gDataCal->getCalendarEventFeed($query);
foreach ($eventFeed as $event) {
    echo $event->title . " (" . $event->id . ")\n";
        foreach($event->when as $when){
            echo $when->startTime . "\n";
        }
}

Надеюсь, это поможет вам начать работу в правильном направлении.

Кроме того, модуль php_openSSL должен быть включен в PHP, чтобы это работало, но я предполагаю, что вы уже включили его, чтобы достичь того, что вы сделали.

...