0

プランナーでウェブサイトを作成していて、Google カレンダーと同期したいと考えています。これまでのところ、Zend フレームワークの GData クラスを使用すると、かなりうまく機能します。定期的なイベントを個別に削除しても、毎週表示されるという問題が発生しています。私が試してみました:

$query->setParam('singleevents','true');

しかし今では、プランナーの最初の数週間に多くのイベントが表示されず、いくつかのイベントを見逃すだけの週もあります. これは私のスクリプトの基本的な構造です:

require_once 'Zend/Loader.php';
Zend_Loader::loadClass('Zend_Gdata');
Zend_Loader::loadClass('Zend_Gdata_HttpClient');
Zend_Loader::loadClass('Zend_Gdata_Calendar');
$service = new Zend_Gdata_Calendar();
$query = $service->newEventQuery();    
$query->setUser('mypubliccalendar@gmail.com');    
$query->setVisibility('public');
$query->setProjection('full');
$query->setStartMin(date('Y-m-d', strtotime(week_start_date("Y-m-d H:i:s"))));
$query->setStartMax(date('Y-m-d', strtotime(week_start_date("Y-m-d H:i:s")) +
    (60*60*24*7*10)));
$query->setOrderby('starttime');
$query->setParam('singleevents','true');

try { 
    $eventFeed = $service->getCalendarEventFeed($query); 
}

catch (Zend_Gdata_App_Exception $e) { 
    return; 
}

foreach ($eventFeed as $event) {        
    foreach ($event->when as $when) {
         // transform data
    }
}

プランナーが Google カレンダーとまったく同じデータを取得するにはどうすればよいですか?

4

1 に答える 1

0

解決策を見つけました。Zend フレームワークは、XML フィードで resultsPerPage の値を使用していると思います。イベントは時系列の逆順で取得されるため、10 週間の私の日付範囲に 55 のエントリがあるため、最初の週は空のままでした。簡単な解決策を選ぶことにし、日付範囲を 5 週間に減らしました。今では完璧に動作します!

于 2011-10-25T16:21:16.707 に答える