使ってみよう! Windows Live SDK/API

第42回 Windows Liveの本気!? 「Messenger Connect」を使ってみよう!

この記事を読むのに必要な時間:およそ 4 分

はじめに

おひさしぶりです。今回の第42回は,前回から約1年と3ヶ月ぶりになります。Windows Live関連のSDK/APIは,1年前と比べいろいろと変化がありました。連載で扱っていたWebサービスはすべて古いSDK/APIとされ,今後の更新は期待できません。代わりに,Windows Live Messenger Connect(以下Messenger Connect)という新しいAPIが公開されています。

Messenger Connectを利用すると,HotmailやSkyDriveなどのWindows Liveサービスと統合したアプリを開発できます。流行のソーシャルアプリ開発にも大いに役立つことかと思います。TwitterやFacebookなどのサービスと連携したアプリとの統合も想定された,扱いやすいシンプルなAPIが提供されています。

Messenger Connectのリリース時に,Windows Liveの開発者向けサイトが刷新され,かつてないほどに多数のドキュメントとサンプルが提供されています。iOSやPHPのコードサンプルもGitHub上に公開されるなどWindows Liveチームの本気度が伺えます。今回から,このMessenger Connectを紹介していく予定です。よろしくお願いいたします。

Messenger Connect

Messenger Connectは,2010年6月にBeta版が公開されたWindows Live関連のAPIコレクションです。以前に提供されていた認証やユーザーデータのアクセスAPIなどの後継になります。登場後,さまざまな変更を経て,現在の最新はVersion 5.0です。

現在のMessenger Connectは,REST APIJavaScript APIで構成されています。主な機能は,アプリからWindows Liveのユーザーデータにアクセスできることです。APIによって,簡単にLiveサービスと統合したアプリ開発が可能になっています。JavaScript APIはWebアプリから利用しますが,デスクトップやモバイルアプリの開発も可能です。

次にMessenger Connectの特徴をいくつか紹介します。

OAuth 2.0サポート

アプリからWindows Liveのデータにアクセスするには,ユーザーから許可を得る必要があります。ユーザーがアプリに対して権限を許可する認可の仕組みは,OAuth 2.0という標準的なプロトコルを利用しています。

Windows LiveのユーザーデータアクセスAPIは,OAuthが流行する以前から提供されていました。以前のAPIではWindows Live独自の認可の仕組みを用いていましたが,Messenger ConnectではOAuthを採用し,一般的な手法により簡単にデータアクセスが可能になっています。

認可のフローの詳細は省略しますが,TwitterやFacebookの連携するアプリを利用した方であれば簡単にイメージがつくと思います。ユーザーは,アプリからWindows Live IDアカウントでサインインして,図4のような画面でアプリの要求するアクセスを許可します。

図1 認可画面

図1 認可画面

認可画面は,モバイル向けの画面も用意されています。

REST APIとJavaScript API

REST APIは,ユーザーデータのアクセスに利用します。すべての操作はHTTPメソッドで行い,レスポンスはJSON形式で取得します。

はじめてWindows LiveのAPIにふれる方であればあまり関係のないことですが,以前に提供されていたユーザーデータアクセスのAPIは複雑な構成で,送受信データはXMLをベースとしたAtom形式を採用していました。このAtomのプロトコルに準ずるため,アプリにとっては不要な情報までも扱い,煩雑さがありました。

最新のMessenger Connectでは,以前のバージョンから改良され,アクセスするURLの書式やレスポンスデータの内容が簡潔なものになり,使いやすくなっています。たとえば,https://apis.live.net/v5.0/me/albums にアクセスすると,ユーザーのSkyDriveのアルバムデータが得られます。

{
    "data": [
        {
            "count": 10, 
            "created_time": "2010-11-11T00:00:00+0000", 
            "description": "", 
            "from": {
                "id": "xxxxxxxxxx", 
                "name": "Sayaka Miki"
            }, 
            "id": "album.xxxxxxxxxx", 
            "link": "https://skydrive.live.com/redir.aspx?cid=xxxxxxxxxx&page=self&resid=xxxxxxxxxx&type=5", 
            "name": "Photo", 
            "type": "album", 
            "updated_time": "2011-11-11T11:00:00+0000"
        }
    ]
}

JavaScript APIは,REST APIと連携して動作するJavaScriptのライブラリーです。JavaScriptの記述だけで,認可のフローからWindows Liveのユーザーデータアクセスまで可能です。PHPなどによるサーバー側の処理は必要ありません。

JavaScript APIも非常にシンプルな構成で,認可の処理やREST APIの呼び出しが可能です。その簡潔さは,後述するアプリの作成でみてみましょう。

許可の種類

Messenger Connectで可能なユーザーデータの操作について紹介します。ユーザーが許可する内容は,いくつかに分類されています。アプリは,必要な操作のみ必要になった時点でユーザーに許可を要求します。この許可をOAuthではScopeと呼んでいます。

参照のみ可能なデータは次の通りです。

  • プロフィール(名前,性別,連絡先など)とコンタクトリスト(友だち)
  • メールアドレス
  • 誕生日
  • 電話番号
  • 住所
  • 役職と会社名
  • SkyDriveの写真とビデオ
  • 友だちの誕生日
  • 友だちの写真とビデオ

追加や投稿操作は,次の内容ができます。

  • カレンダーに予定の追加
  • 更新(アクティビティ)の投稿

少し特別なものとして次のものがあります。

  • 自動的にサインインする
  • アプリがいつでも情報にアクセスできるようにする

自動的にサインインは,Windows Liveサービスとシングルサインオンを可能にするものです。この許可を受けると,HotmailやSkyDriveなどのサービスでサインインした状態でアプリにアクセスすると,すぐにWindows Liveのデータにアクセスできる状態になります。またアプリでサインアウト操作を行うと,Hotmailなどのサービスからもサインアウトされた状態となります。

後者のいつでもアクセスは,ユーザーがアプリを使用していないときでも,ユーザーデータにアクセスするための許可です。

以上に,開発用の特殊な許可を加えたものが,Messenger Connectで可能な操作です。

著者プロフィール

松江祐輔(まつえゆうすけ)

日本システムウエア株式会社 勤務。現在,ハードウェア設計・検証業務を担当。大学生・大学院生時代はベンチャー企業 有限会社ミレニアムシステムズにプログラマーとして従事。趣味はプログラミング。好きな言語はVisual Basic。Microsoft MVP for Windows Live Platform(Jul 2010 - Jun 2011),Windows Live(Jul 2011 - Jun 2013)。

URL:http://katamari.jp

コメント

コメントの記入