「ownCloud 4.5.5へのアップグレード | hiro345」で紹介しましたが、CalDAVサーバのownCloudを本格的に利用することにしたのでプログラムからアクセスできるようにしたいところです。その前に、これまでiCalendarフォーマットのICSファイルを使っていたので、それを入手する方法について調べました。
簡単に入手ができて、wgetなどで次のようにすれば取得できます。username, passwordは環境変数で指定しておきましょう。ここでは通常用意される「default calendar」をエクスポートしています。URLエンコードで空白を「%20」と変換してから指定している点に注意してください。これで default.icsという名前でダウンロードできます。他にカレンダーを作っているときは、「default%20calendar」の部分をカレンダー名にします。
$ wget -O default.ics --auth-no-challenge --no-clobber --http-user=${username} --http-password=${password} http://host.example.jp/owncloud/remote.php/caldav/calendars/${username}/default%20calendar?export
usernameやpasswordをコマンドラインで指定すると、セキュリティ的に問題となるので、.bash_historyなどからコマンド履歴は消しておくようにしましょう。コマンドでの指定を省略するには、$HOME/.wgetrc へ指定します。接続するサーバ毎にユーザ名とパスワードを変更したいこともあるでしょうから、その場合は$HOME/.wgetrc-owncloudなどを用意して、実行時に個別に指定をします。
$ chmod 600 $HOME/.wgetrc-owncloud $ cat $HOME/.wgetrc-owncloud http_user = username http_passwd = password $ username="user001" $ WGETRC=$HOME/.wgetrc-owncloud wget -O default.ics --auth-no-challenge --no-clobber http://host.example.jp/owncloud/remote.php/caldav/calendars/${username}/default%20calendar?export
$HOME/.netrcを用意しておく方法もあります。複数のマシンを指定できるので、こちらの方が使いやすいかもしれません。
$ chmod 600 $HOME/.netrc $ cat $HOME/.netrc host1.example.jp login user001 password pass001host1 host2.example.jp login user001 password pass001host2 $ username="user001" $ wget -O default.ics --auth-no-challenge --no-clobber http://host.example.jp/owncloud/remote.php/caldav/calendars/${username}/default%20calendar?export