とか思って、ざっと調べてメモ的に。
第48回 SkyDrive API 概要(1):使ってみよう! Windows Live SDK/API|gihyo.jp … 技術評論社 http://bit.ly/15BP39B
SkyDrive API (Live Connect) http://msdn.microsoft.com/ja-jp/library/live/hh826521.aspx …
JSON形式をC#のオブジェクトにシリアライズ・デシリアライズする – かずきのBlog@Hatena http://d.hatena.ne.jp/okazuki/20101217/1292600928 …
.NET FrameworkでJSONデータを処理する (2/4):CodeZine http://codezine.jp/article/detail/5868?p=2 …
ツール自体は、旧来のフォームアプリで作るのだが、直接のサンプルはない…というか、REST API で ok。どうせなので HttpClient を使って非同期にする。
Twitter のアプリと同じく、アプリケーション設定サイト でアプリを登録する。そうすると、クライアント ID が得られる。
ユーザーにクライアント ID を使ってアクセストークンを得る。アクセストークンは一定期間は使いまわせるらしい。Twitter の場合と違って、しばらく時間が経つと消えてしまっている気がする。
フォルダ、ファイルの情報は、JSON で得られるので、DataContractJsonSerializer を使ってデシリアライズする。
そこで、ここまで動くことを確認済み。
こんな感じでファイルとフォルダを取得できる。
■SkyDrive を使って相手にファイルを送る
ローカルのフォルダに置いて、すぐに相手に知らせると、まだ SkyDrive にあがっていない。なので、しばらく経つと自動的に同期をとるので、そのときにダウンロードして貰えばいいのだが、「いつ同期が完了するのか?」がわからない。なので、
- ファイルがアップロードされてるか定期的にチェック&表示
が必要。新規の場合は、SkyDrive にファイルがないので、ローカルのフォルダと比較するとわかる。更新の場合は、ファイルの更新時刻 updated_time がわかるので、これを比較する。削除の場合は、あまり関係ない。
ってのを作れば ok