ownCloudからICSファイルを取得するには

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
同じタグの記事: bash
同じタグの記事: ownCloud
同じカテゴリの記事: Linux
同じカテゴリの記事: Program
関連書籍: bash