0

Zend Gdata Calendar クラスを使用して、定期的なイベントに例外を追加するにはどうすればよいですか?

$orig = $evtFeed[0]; //the original recurrence

$ex = $gc->newEventEntry(); //gc is a Zend_Gdata_Calendar object
$ex->originalEvent = $gc->newOriginalEvent($orig->getId(), $orig->getLink('self')->href, $gc->newWhen('2009-09-23T15:00:00.000Z'));
$ex->eventStatus = $gc->newEventStatus("http://schemas.google.com/g/2005#event.canceled");

$gc->insertEvent($ex);

上記のコードの約 20 のバリエーションを試しましたが、毎回次のエラーが発生します。

致命的なエラー: キャッチされない例外 'Zend_Gdata_App_HttpException' とメッセージ 'Expected response code 200, got 403 g:originalEvent [2009-09-23 15:00:00] は定期的なイベントのインスタンスに対応していません。

4

2 に答える 2

1

まあ、インターネットで何時間も検索した後、これは zend api で可能かもしれないという結論に達しましたが、私はそれを理解することはありません. 最終的にはあきらめて、繰り返しを編集し、EXDATE ルールを iCalendar データに追加することにしました。Google カレンダー インターフェースのバグのおかげで、この方法で作成された例外は、ページを更新しない限り表示されず (カレンダーの上の更新リンクは機能しません)、さらに時間を無駄にしました。

EXDATEに頼らずにこれを機能させる方法を誰かが見つけた場合は、投稿してください。定期的にチェックして正しい答えをマークしてください.

更新:わかりました。私はこれを、私がばかであることに部分的に責任を負い、Googleの恐ろしい命名システムに部分的に責任を負うつもりです. を呼び出すgetId()と、EventEntry実際にはイベントの EDIT URL が返されます。コンストラクターは URLのOriginalEvent実際の ID 部分のみを想定しているため、部分文字列を使用して抽出する必要があります。getId()アクセサーに正しく名前を付けるのは、なんと素晴らしいことでしょう。

于 2009-09-23T02:11:30.097 に答える
0

getId を解析する必要はありません。calendarEventEntry.getIcalUID() を使用するだけです。

于 2010-10-22T19:41:20.117 に答える