3

Python 経由で Mac OS X Snow Leopard サーバー上の Apples iCal-Server にアクセスしようとしています。サーバーは稼働しており、iCal-Application を介してサーバーを操作することは問題ありません。次に、リソース計画のバックエンドとして使用するために、Python 経由でこのサーバーにアクセスする必要があります。私はすでに CalDav-Module ( http://packages.python.org/caldav/index.html ) を見てきましたが、プリンシパル URL は正しいものの、そこに提供されたサンプルではカレンダーが見つかりませんでした。

では、Python を使用してユーザーのカレンダーから時間範囲内のイベントを読み取るにはどうすればよいでしょうか?

4

1 に答える 1

1

[解決策ではなくデバッグする]

caldav モジュールのドキュメントに記載されている例から:

from datetime import datetime
import caldav
from caldav.elements import dav, cdav

# Principal url
url = "https://user:pass@hostname/user/Calendar"

client = caldav.DAVClient(url)
principal = caldav.Principal(client, url)
calendars = principal.calendars()

問題

  1. URL の例は、ical サーバーのプリンシパル URL ではありません
  2. calendars = principal.calendars() のコードを見ると、応答は無視されます。
  3. プリンシパル URL が正しくない場合、エラーを発行することなく、空のカレンダー セットだけが返されます。

デバッグのヘルプ:

objects.py ファイルには、children という DAVObject のメソッドがあります。コードを変更して、デバッグ情報を含めることができます。以下を貼り付けて、質問に情報を貼り付けることができる場合。

    response = self.client.propfind(self.url.path, body, depth)
    print response, self.url.path #provide additional info
    print response.raw  #provide additional info
    for r in response.tree.findall(dav.Response.tag):
于 2010-10-18T23:12:13.283 に答える