Hotmail、Messenger、SkyDrive のデータをモバイル アプリケーションで使用する方法

みなさん、こんにちは。Windows 開発統括部の古内です。

今日も Windows 7 タスク バーの話題はお休みして、 最新の Windows Live 開発関連ブログ記事の翻訳をお届けします。今回は、Inside Windows Live Blog に 2011 年 7 月 20 日に投稿された 「Developers – Learn how to bring data from Hotmail, Messenger, and SkyDrive to your mobile apps」 の翻訳です。

なお、先日の記事でもご紹介しましたが、弊社 Windows Live チームが下記のサイトで Windows Live に関するさまざまな情報を提供中です。

Windows Live にご興味のある方は、ぜひこれらのサイトも覗いてみてください。


開発者向け情報: Hotmail、Messenger、SkyDrive のデータをモバイル アプリケーションで使用する方法

開発者向けプラットフォーム (英語) の最近のリリースにより、Windows Phone、Android、iOS など最新のモバイル プラットフォームを使用する開発者にとって、お気に入りのモバイル アプリケーションやモバイル デバイスで、Hotmail、Messenger、SkyDrive に保存されている連絡先や写真などの情報にアクセスする機能を統合することが簡単になりました。

それを実現するために、下記の方法でプロセスを効率化しました。

  • アプリケーション セットアップ プロセスの軽量化 (サーバー側のコードは不要)
  • サインインおよびユーザー同意のエクスペリエンスのモバイルへの最適化
  • クラウド上のユーザー データにアクセスするモバイル アプリケーションを構築する際の主な手順を示したコード サンプルの提供

アプリケーション セットアップ プロセスの軽量化

これまでのリリースを通じてわかったことの 1 つですが、モバイル アプリケーションの開発者はたいてい、アプリケーションをバックで支える Web サービスを用意していません。 このため、マイクロソフトが提供する各種の承認や Web サービスのエンド ポイントとアプリケーションが通信するために必要なプロセスはすべて、クライアント側アプリケーションから使用できるようにしなければなりません。

現在の https://manage.dev.live.com での登録プロセスはきわめて簡単です。 アプリケーションを作成するために必要な情報は、アプリケーションの名前と言語だけです (以下を参照してください)。

manage.dev.live.com での登録

[I accept] をクリックすると、クライアント ID とクライアント シークレットが提供されます。

OAuth 2.0 (英語) をご存知の方は、手順が 1 つ省略されているのではないかと思われることでしょう。ユーザーのリダイレクト先 URL の指定です。ユーザーは、正常にログインし、アプリケーションがデータにアクセスすることに同意すると、特定の URL にリダイレクトされます。 このようなリダイレクト先 URL の指定は、オプションとなりました。 Web ベースのアプリケーションでは、このデータをアプリケーション管理サイトで指定できます。

ユーザーのリダイレクト先となる Web サイトがないモバイル アプリケーションやデスクトップ アプリケーションは、OAuth 2.0 承認要求時に代わりに https://oauth.live.com/desktop をリダイレクト先 URL として使用します。 この URL は、アプリケーション管理サイトでモバイル アプリケーションのリダイレクト先 URL として指定する必要はありません (指定すると、拒否されます)。

サインインおよびユーザー同意のエクスペリエンスのモバイルへの最適化

以前の記事で書いたように、サインインのエクスペリエンスや、アプリケーションがデータにアクセスすることをユーザーが許可するときのエクスペリエンスについて、モバイルへの最適化が行われました。

Windows Phone からユーザーの SkyDrive のフォト アルバムにアクセスする方法を示したコード サンプルを見てみましょう。これは、MSDN コード サンプル ギャラリー (英語) からダウンロード可能です。 このコード サンプルには、ユーザーのサインインを実行し、データへのアクセスについて同意を得て、実際にユーザーの情報にアクセスするまでの主な手順が示されています。また、その他の関連するユーザー エクスペリエンスも含まれています。

ユーザーのサインイン処理では、OAuth 2.0 承認エンド ポイントへの URL を生成し、アプリケーションで使用したいデータへのアクセスに必要な適切なスコープを要求します。コードは以下のようになります。

 /// <summary>
/// OAuth サービスの承認エンドポイントの URI
/// </summary>
private static readonly string OAuthAuthorizeUri = "https://oauth.live.com/authorize";

/// <summary>
/// スコープのリスト
/// </summary>
private string[] scopes = new string[] { "wl.basic", "wl.photos" };

/// <summary>
/// OAuth URI の作成
/// </summary>
/// <param name="scopes">The requested scopes.</param>
/// <returns>The OAuth URI.</returns>
private Uri BuildOAuthUri(string[] scopes)
{
    List<string> paramList = new List<string>();
    paramList.Add("client_id=" + HttpUtility.UrlEncode(MainPage.ClientId));
    paramList.Add("scope=" + HttpUtility.UrlEncode(String.Join(" ", scopes)));
    paramList.Add("response_type=" + HttpUtility.UrlEncode("token"));
    paramList.Add("display=" + HttpUtility.UrlEncode("touch"));
    paramList.Add("redirect_uri=" + HttpUtility.UrlEncode(MainPage.RedirectUri));

    UriBuilder authorizeUri = new UriBuilder(MainPage.OAuthAuthorizeUri);
    authorizeUri.Query = String.Join("&", paramList.ToArray());
    return authorizeUri.Uri;
 }

生成された URL にブラウザーでアクセスした際のユーザー エクスペリエンスは以下のようになります。 まずサインインするよう求められます。

Windows Live のサインイン画面

サインインが完了すると、アクセス許可ダイアログが表示されます。ユーザーはこのダイアログから、基本的なユーザー情報やアプリケーションが要求する SkyDrive 内の写真について、アプリケーションによるアクセスを許可するかどうかを指定します。

アクセスを許可する画面

ユーザーが以上の手順を完了すると、アプリケーションはアクセス トークンを取得します。このトークンと REST API を使用してアプリケーションはユーザーのデータにアクセスします。 アクセスを許可する手順を行う必要があるのは 1 回だけであることに注意してください。ユーザーがいったんアクセスを許可すると、アプリケーションは、同意管理ページでユーザーがアクセス許可を取り消すまでユーザー データにアクセスすることが可能な状態となります。

このコード サンプルでは、アプリケーションが、ユーザーのプロファイル情報と SkyDrive のフォト アルバムを単純に一覧表示します。

プロファイル情報とアルバム

さらにコード サンプルを準備中

開発者の皆様から多数寄せられた「自分の好みのプログラミング言語やプラットフォームで Hotmail、Messenger および SkyDrive のデータにアクセスする方法を示したコード サンプルをもっと提供して欲しい」というご要望を受けて、 より幅広い種類のコード サンプルを現在準備中です。 モバイル開発者の方は、まずは、この記事の SkyDrive API サンプル (英語) をダウンロードしてお試しください。

皆様のご意見に感謝いたします。引き続き皆様のご意見をお待ちしています。