试图从使用PHP的日历中获取事件列表

问题描述:

我试图从日历中获取事件列表。 我在看 developers.google.com/google-apps/calendar/v3/reference/calendarList/list试图从使用PHP的日历中获取事件列表

我认为$业务从$ CAL =新apiCalendarService($客户端)创建的;该文件不是非常具体。

当我尝试执行下面的代码,我得到的错误 PHP致命错误:调用一个成员函数getItems()一个非对象

,但如果我这样做它的工作原理

$calendarList = $cal->calendarList->listCalendarList(); 
print "<h1>Calendar List</h1><pre>" . print_r($calendarList, true) . "</pre>"; 

另外,如果我尝试示例代码@

developers.google.com/google-apps/calendar/v3/reference/events/list#examples 我得到同样的错误 PHP致命错误:调用给会员功能getItems()一个非对象

这工作:

$events = $cal->events->listEvents('[email protected]'); print "<h1>Events</h1><pre>" . print_r($events, true) . "</pre>";[/PHP] 

这种失败:

foreach($events->getItems()as $event){ 
echo $event->getSummary(); 

}

我不能想象所有这些例子都是不好的,所以任何我在做什么错误的建议?

的例子如下:

$calendarList = $service->calendarList->listCalendarList(); 
while(true){ 
    foreach($calendarList->getItems()as $calendarListEntry){ 
     echo $calendarListEntry->getSummary(); 
    } 
    $pageToken = $calendarList->getNextPageToken(); 
    if($pageToken){ 
     $optParams = array('pageToken'=> $pageToken); 
     $calendarList = $service->calendarList->listCalendarList($optParams); 
    }else{ 
     break; 
    } 
} 

感谢所有帮助

+0

可以请你用'的var_dump($ CAL)'和'的var_dump($ calendarList)',以检查它们是否对象。 – 2012-08-11 11:18:41

你需要得到$calendarList为对象,作为当前的代码不数组。

使用

$client->setUseObjects(true); 

之前

$service = new apiCalendarService($client); 

说明:

$events = $cal->events->listEvents('[email protected]'); 

返回数组。如果你不需要一个对象进行进一步处理,这将是好的。

既然你需要一个对象,你需要使用对象设置为true:

$client->setUseObjects(true); 

现在,

$events = $cal->events->listEvents('[email protected]'); 

仍然工作,只是不同的是,你现在有一个对象,您可以在此行下面使用您的代码。

尝试更新您的代码:

 foreach($calendarList->getItems()as $calendarListEntry){ 
    echo '<h1>event->getSummary()='.$event->getSummary().'</h1>'; 
    $client->setUseObjects(true); 
    $events = $cal->events->listEvents($event->id); 
    echo 'events=<pre>'; print_r($events); echo '</pre>';  
}