Windows Phone 7 アプリから SkyDrive へアクセス Part 1

10/30 の OITEC でした LT ネタについてそろそろ書いておきます。LT のタイトルは 「WP7 で何か(仮)」でしたが、Windows Live 関連ですることは、タイトル決めた時点で決めてて SkyDrive にアクセスしてみました。

実装の詳しいまでの話ではないけど関連話題を書いておきますね。

[office src=”http://r.office.microsoft.com/r/rlidPowerPointEmbed?p1=1&p2=1&p3=SDAFE8504AA8CD166F!1636&p4=” width=”402″ height=”327″]

 

↑まったくアニメーションしないだと……。LT のデモでは Web ブラウザーから SkyDrive へ写真をアップロードし、Windows Phone 7 エミュレーターでアクセスできたよ! ってのをしました。

Windows Phone 7 公式アプリとして Windows Live への各種データにはアクセスできるようですが、自アプリからアクセスってのがまずポイントですね。

Messenger Connect

どうやってアクセスするかですが、Windows Live の新しい API コレクション、Messenger Connect を使います。Messenger Connect は Windows Live API では初めて SkyDrive へのアクセスをサポートしたいけてる API です。これを利用すると、Windows Live のユーザーデータにアクセスが可能になります。でもこれ基本 Web アプリ向けで Windows Phone 7 (やデスクトップアプリ)はあまり想定されてないんですよね。でも Windows Phone 7 で使ってやったってのがもうひとつのポイントです。

Messenger Connect は、HTTP(S) および XML/JSON を基本とした REST サービスと JavaScript ライブラリーからなってます。今回使ったのは前者なので、たいていのプログラミング言語であれば利用できます。ただ、次の認証が Windows Phone 7 用に用意されていません。

 

認証

ユーザーデータにアクセスできるとはいっても認証は必要だろう JK 。ってことで、ユーザーがアプリにアクセスを許可する形で認証を行います。OAuth WRAP という名前が付いていて、まあ Twitter のアレみたいな感じ。OAuth 自体は認証の考え方で、Windows Live 用に実装したのが OAuth WRAP という感じですかね。

実際の認証は、Windows Live サービスの認証ページに(通常は Web サイトからリダイレクトで)アクセスし、Live ID アカウントでサインイン後、ユーザーがアプリ対して許可・拒否を行います。

 

認証

 

はい、ここの認証方法と認証ページは、Messenger Connect において必須です。デスクトップアプリでも、Windows Phone 7 でも Web ブラウザーコントロールを使用してアクセスする必要があります。そして、アプリと Windows Live サーバー間との認証のやりとりを実装する必要があります。Web アプリであれば、ASP.NET のライブラリーや PHP のサンプルコードが用意されていますが、デスクトップアプリは、OAuth WRAP (Messenger Connect) を参照して、自分で実装する必要があります。

というわけで、当初 Web ブラウザーコントロールと自前実装をして動作を確認していたのですが、OAuth WRAP 部分に関しては、公式からデスクトップと Silverlight アプリ向けサンプルが登場しました(Creating Desktop Applications with Messenger Connect)。このサンプルを Windows Phone 7 にも対応する形でデモアプリは作りました。

アプリとサーバー間のやりとりの内容は今日はふれませんが、このデスクトップ用のコードを使用すると Web アプリの場合はユーザーの知ることのできない Secret Key という秘密の文字列がアプリに埋め込まれている状態になるんですよね。ただし、これを知っても他人のデータにアクセスできるわけではなく、ユーザー自身のデータにアクセスできるだけなので実害はないのかなー。

ちなみに OAuth WRAP は Messenger Connect から登場した方法ですが、以前から Live ID Delegated Authentication というほぼ同じ認証方法が用意されていました。こっちの実装よりは OAuth WRAP の方が楽でした。

 

続く。以下、だいたい書くこと。

  • ユーザーデータアクセス関連の話
  • Windows Phone 7 へ実装の話
  • Windows Phone 7 用認証サンプルコードのアップロード

追記: 続きませんでした

スポンサーリンク

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

スポンサーリンク