#:g1: dropbox.pltの紹介

Posted 2014-04-01 15:00:00 GMT

(LISP Library 365参加エントリ)

 LISP Library 365 の92日目です。

dropbox.pltとはなにか

 dropbox.pltは、RacketからDropboxを利用するためのライブラリです。

パッケージ情報

パッケージ名dropbox.plt
PLaneTPLaneT Package Repository : PLaneT > stchang > dropbox.plt

インストール方法

 Racket内から

(require (planet stchang/dropbox:2:0/dropbox))

でOKです。

試してみる

 どんな関数があるかは、上記のPLaneTのドキュメントで確認できます。

 とりあえずは、Dropboxにアプリの登録をして、APPキーを入手します。
アプリの登録時に既存のファイルにアクセスすることを選択すれば、ACCESS-TYPEは'dropbox'になり、新規にアプリ専用のフォルダを選択する'app_folder'になります。

入手したキーを設定した後は、ドキュメントに書いてある内容で一通り使えるようになります。

(set!-APP-KEY "......")

(set!-APP-SECRET ".....")

(set!-ACCESS-TYPE "dropbox")

(get-authorization-url) ;=> "https://www.dropbox.com/1/oauth/authorize?oauth_token=...." ; このURLにブラウザでアクセス (obtain-access-token) ;=> "......" ; "......"

ファイルのダウンロード

(download-file "foo.txt" "/tmp/foo.txt")

ファイルのアップロード

(upload-file "/tmp/foo.txt" "bar.txt")
;=> '#hasheq((path . "/bar.txt")
;           (bytes . 677877)
;           (rev . "2a95f5480017a826")
;           (root . "dropbox")
;           (revision . 714470728)
;           (thumb_exists . #f)
;           (modified . "Sun, 30 Mar 2014 14:55:54 +0000")
;           (client_mtime . "Sun, 30 Mar 2014 14:55:54 +0000")
;           (is_dir . #f)
;           (icon . "page_white_text")
;           (mime_type . "text/plain")
;           (size . "662 KB")

 その他のAPIも大体揃っているようです。

まとめ

 今回は、dropbox.pltを紹介してみました。
Quicklispのcl-dropboxが未完成っぽかったのでRacket勢はどんなもんかと思って試してみましたが、こっちは割とちゃんとしてました。

comments powered by Disqus