2

私のアプリケーションは実行時に複雑なカレンダーを生成するため、すべてのユーザーが特定の日時のタスクを持ち、すべてのタスクに説明といくつかのプロパティがあります。

このカレンダーをwebCalとして「公開」するように依頼されました。私はwebcalについての知識がありませんが、とにかく、誰かがすでにそれを試し、彼のコメントや提案を書くことができるのではないかと思います。

1つの問題は「ユーザーを識別する方法」ですか?マルチユーザーカレンダーを使用しているので、ユーザーごとに個別のカレンダーを公開するにはどうすればよいですか?

カレンダーを公開して継続的に実行する一種のDelphiサービスアプリケーションだと思います。

4

1 に答える 1

4

ユーザーがカレンダーへの書き込みアクセスを必要とするかどうかによって異なります。

以前、単一の (.ics) カレンダー ファイルをエクスポートする単純な (コマンド ライン) ユーティリティを作成したことがあります。変更された場合、エクスポートされた .ics ファイルを Web サーバーにアップロードし、カレンダー クライアント (Google カレンダー、iCalendar、Sunbird、Outlook など) で取得できるようにします。ユーザーごとに異なるフォルダーに .ics ファイルをアップロードすることで、さまざまなユーザーへの公開を簡単に行うことができます。

次に、このユーティリティを定期的に実行するようにスケジュールしました。もちろん、Delphi サービスにこれを定期的に実行させることもできます。

多くのカレンダー クライアントはhttp://、URL だけでなく URL も認識しwebdav://ます。認証は、通常の HTTP 認証スキームの 1 つを使用して調整できます。もちろん、物事を保護するために SSL を使用する必要があります。

このアプローチの唯一の制限は、結果のカレンダーが実質的に読み取り専用になることです。

書き込みアクセスを提供したい場合は、実際の webcal サーバーが必要になります。実際の webcal 実装とは、サーバー上でwebdavプロトコル (それ自体が HTTP プロトコルの拡張) をサポートし、Delphi サービスから変更を取得することを意味します。それか、Delphi で WebDav/CalDav サーバーを作成します (たとえば、IndyTIdHTTPServerは TIdWebdavServer コンポーネントをサポートしていないため、コンポーネントを拡張して Indy TIdWebdav コンポーネントを使用します)。

WebDAV 仕様OnCommandOtherに従って、すべての webdav 固有のコマンドを (イベントを使用して) 自分で処理する必要があります。WebDAVサーバーの作成に関するこの質問は、いくつかの指針を提供するかもしれません...

または、サードパーティの webdav サーバーを使用して、Delphi サービスから変更を取得することもできます。

于 2012-07-16T09:19:04.357 に答える