2011-06-06 87 views
-1

我一直在寻找信息通过谷歌日历API,Zend文档,在这里,几乎所有我发现似乎对我已经了解PHP的假设,所以我只是越来越迷失。我确实有很多编程经验......有......这是FORTH变体。无论如何!我试图将可用于从日历事件中获取所有重要数据的PHP脚本的输出传递给FORTH变体。是什么促使我走上困境,是因为我无法弄清楚如何抓取像邮件的UID这样简单的东西。这里就是我的工作:谷歌日历/ PHP新手问题

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";的循环,但它只是告诉我:

Fatal error: Uncaught exception 'Zend_Gdata_App_InvalidArgumentException' with message 'Property uid does not exist' in /var/mucktools/Zend/Gdata/App/Base.php:484

所以,很显然,我会约抢夺用错了方式。现在,这是事情。这两条线:

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

...正在从事件中提取数据。但是,'标题'。 '文本','startTime'都看起来像是从后面拉出来的东西。我知道,认知上,这不可能是真实的。这里有一个图书馆和一个API。但是我想知道在哪里可以找到我可以从$ event中抽出的所有废话的列表,以及语法是如何实现的。谁能帮我这个?

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

回答

0

我确定您已阅读documentation for Zend Gdata。它告诉你,你需要提供一个Zend_Gdata_Query对象的getCalendarEventFeed(),否则我认为你只是获取公共数据。然后

您的代码应该是这个样子: -

$service = Zend_Gdata_Calendar::AUTH_SERVICE_NAME; 
$user = "[email protected]"; 
$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中启用才能正常工作,但我认为您已经启用了远程操作。