2011-06-06 71 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中啓用才能正常工作,但我認爲您已經啓用了遠程操作。