SkyDriveがどこまで同期しているかをチェックするツールを作りたい

とか思って、ざっと調べてメモ的に。

第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 を使ってデシリアライズする。

そこで、ここまで動くことを確認済み。

image

こんな感じでファイルとフォルダを取得できる。

■SkyDrive を使って相手にファイルを送る

ローカルのフォルダに置いて、すぐに相手に知らせると、まだ SkyDrive にあがっていない。なので、しばらく経つと自動的に同期をとるので、そのときにダウンロードして貰えばいいのだが、「いつ同期が完了するのか?」がわからない。なので、

  • ファイルがアップロードされてるか定期的にチェック&表示

が必要。新規の場合は、SkyDrive にファイルがないので、ローカルのフォルダと比較するとわかる。更新の場合は、ファイルの更新時刻 updated_time がわかるので、これを比較する。削除の場合は、あまり関係ない。

ってのを作れば ok

カテゴリー: ツール パーマリンク