基本に戻ると、PHPスクリプトをアップロードできません。一部のカレンダークライアントでは、URLをサブスクライブしてiCalフィードを取得できます。これが実行中であり、PHPスクリプトをアップロードしようとしていないことを確認してください。ファイル。
それでよければ、定義を見ることができます。ドキュメントによると、ORGANIZER
パラメータはオプションです。含まれている場合は、コロン:
と、 URIである必要があるcal-addressが必要です。フィールドは次のようになります。ORGANIZER
ORGANIZER;CN=Blodgruppen
これらは次のようになります。
ORGANIZER;CN=Blodgruppen:URI
URIが必ずしもmailtoである必要はない場合、ここにいくつかの例があります。便宜上、このようにメールアドレスを追加することができます...
ORGANIZER;CN=Blodgruppen:MAILTO:bob@b.com
または電話番号...
ORGANIZER;CN=Blodgruppen:TEL:+49-01234-56789
ftp URLのWebだけでなく、他のあまり使用されていないものを含めることができます。または、パラメータは不要なので、削除するだけで済みます。
また、必須のプロパティであるaとaVEVENT
が欠落しているようです。UID
DTSTAMP
UID
選択した識別子にすることができますが、グローバルに一意である必要があります。パラメータの意味を説明することにより、グローバルに一意であるとはどういう意味かを説明しUID
ます。カレンダークライアントはこれを使用してイベントを識別します。カレンダーにすでに存在するイベントのIDを使用すると、そのイベントが更新されると考えて更新されるため、既存のイベントのIDと一致してはなりません。 。イベントを含む可能性のある多くの異なるカレンダークライアントにイベントを追加することを考える場合、これが「グローバルに」一意である必要がある理由です。PHPで使用できる関数があり、uniqid()
グローバルに一意の独自の識別子を作成するのに役立つ場合があります。
DTSTAMP
イベントが作成された時間、または最後に更新された時間です。
定義内の空白は一貫性がなく、ドキュメントではパラメーターと値の間の空白については説明されていませんが、すべての例は空白なしで示されているため、必須ではない空白を削除することもできます...
DTEND: 20130128T193000Z
なるために...
DTEND:20130128T193000Z
痛くないかもしれませんが、可能性はあります。また、問題の原因となっているiCal定義であることを確認するために、最小限のパラメーターで1つのイベントを試すことから始めます。
BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//hacksw/handcal//NONSGML v1.0//EN
BEGIN:VEVENT
UID:20121229T212000Z-test-1
DTSTAMP:20121229T212000Z
DTSTART:20130128T173000Z
DTEND:20130128T193000Z
END:VEVENT
END:VCALENDAR
PHPスクリプトが正しいmimeタイプを使用していることも確認することをお勧めしますtext/calendar
。そうでない場合は、次の関数Content-Type
を使用して応答にヘッダーを追加できます。header
header("Content-Type: text/calendar");
これがお役に立てば幸いです...