2

カレンダーからイベントのリストを取得しようとしています。私はdevelopers.google.com/google-apps/calendar/v3/reference/calendarList/listを見ています

$serviceは$cal= new apiCalendarService($ client);から作成されると思います。ドキュメントはあまり具体的ではありません。

以下のコードを実行しようとすると、エラー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('rtparies@gmail.com');    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;
  }
}

助けてくれてありがとう

4

2 に答える 2

5

$calendarList現在のコードのように配列ではなく、オブジェクトとして取得する必要があります。

使用する

$client->setUseObjects(true); 

直前

$service = new apiCalendarService($client);

説明:

$events = $cal->events->listEvents('rtparies@gmail.com');

配列を返します。さらに処理するためのオブジェクトが必要ない場合は、これで問題ありません。

オブジェクトが必要なので、オブジェクトの使用をtrueに設定する必要があります。

$client->setUseObjects(true);

今、

$events = $cal->events->listEvents('rtparies@gmail.com');

はまだ機能していますが、違いは、この行の下のコードに使用できるオブジェクトがあることだけです。

于 2012-08-14T17:13:52.793 に答える
0

コードを更新してみてください:

     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>';       
 }
于 2013-04-08T16:01:23.647 に答える