谷歌日历/ PHP新问题

时间:2011-06-06 18:09:44

标签: php zend-framework google-calendar-api

我一直在通过谷歌日历API,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标签进行格式化,只需将每个标记放在自己的新行上(这对我来说更容易引入另一种语言。)< / p>

现在,我尝试将echo $when->startTime . "\n";添加到循环中,但它只是告诉我:

  

致命错误:/var/mucktools/Zend/Gdata/App/Base.php:484中未捕获的异常'Zend_Gdata_App_InvalidArgumentException',消息'属性uid不存在'

所以,显然,我正在以错误的方式抓住UID。现在,这就是事情。这两行:

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

...正在从事件中提取数据。但是,'标题'。 'text','startTime'看起来都像是从后面拉出的东西。我知道,在认知上,这不可能是真的。这里有一个库和一个API。但我想知道在哪里可以找到我可以从$ event中提取的所有垃圾的列表以及语法是这样做的。任何人都可以帮我这个吗?

在你问之前,是的,我有一个很好的理由去抓取PHP脚本的输出并将其填充到一个不起眼的FORTH变体中。不,没有别的方法比这个方法更复杂。我在这里完成了我的作业。

1 个答案:

答案 0 :(得分:0)

我确定你已经阅读了documentation for Zend Gdata。它告诉您需要为Zend_Gdata_Query对象提供getCalendarEventFeed(),否则我认为您只需返回公共数据。

您的代码应该如下所示: -

$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中启用php_openSSL模块才能使其正常工作,但我认为您已经启用了它,以便尽可能地获取。