mixiアプリの作り方からOpenSocialの仕様を学ぶ
前回の記事で、「mixiアプリはOpenSocialの仕様に基付いている」と説明しました。具体的には、ガジェットからJavaScriptを実行し、OpenSocial JavaScript APIの、Personクラスのインスタンスを利用することで名前などの情報を取得できます。
オーナーとビューアー
OpenSocialのアプリケーションでは、以下のようにユーザーを明確に分けて扱います。
- ビューアー:アプリケーションを閲覧している人:アプリケーションを閲覧している人
- オーナー:アプリケーションをインストールしている人:アプリケーションをインストールしている人
例えば、AさんとBさんが「X」というアプリケーションをインストールしている場合、次のようなケースがあります。
ビューアー | オーナー | |
---|---|---|
Aさんが、BさんのプロフィールページでXアプリを開いた | Aさん | Bさん |
Aさんが、AさんのプロフィールページでXアプリを開いた | Aさん | Aさん |
OpenSocialアプリケーションでは、ビューアーとオーナーが一致しているかどうかで表示内容を変更することがよくあります。
「ひとこと」でも、新しくつぶやくための入力インターフェイスを、ビューアーとオーナーが一致している場合のみ表示することで、他人のアプリページからはつぶやけないようにしています。
今回は、ビューアーの情報を表示してみましょう。
ビューアーの名前とサムネイルを表示するには?
前回までのソースコードに手を加えて、APIを通じて、ビューアーのPersonオブジェクトを取得し、キャンバスビューにて名前とサムネイルを表示してみましょう。
Personオブジェクトの取得はMVCのM(モデル)に行わせたいところですが、まずは、C(コントローラー)に書いて、その後モデルに処理を移すことにします。コントローラーのonLoadCanvasメソッドを、次のように書き変えました。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
ビューのコード
コントローラーは、新たに用意されたV(ビュー)のメソッド「showError」「showViewer」を呼ぶようになっています。先に、ビューのコードを見ておきましょう。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
実行結果
このコードの実行結果は、次のようになります。
ビューアー情報取得で使うOpenSocial JavaScript API
上記のコントローラーとビューの中で使用されているOpenSocial JavaScript APIのメソッドは、表2のようになっています(表2のクラス一覧はインデックスになっています)。
クラス | メソッド |
---|---|
Opensocial | newDataRequest |
DataRequest | add、newFetchPersonRequest、send |
DataResponse | hadError、getErrorMessage、get |
ResponseItem | hadError、getErrorMessage、getData |
Person | getDisplayName、getField |
ここからは、これらのAPIの使い方について解説します。
OpensocialクラスでDataRequestインスタンスの生成
まずコントローラーでは、OpensocialクラスのnewDataRequestメソッドを呼び出して、DataRequestクラスのインスタンスを取得します。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
DataRequestクラス
DataRequestクラスは、以下の処理をOpenSocialコンテナに依頼するためのクラスです。
- ユーザーの情報の取得
- mixiアプリ上で行ったことのマイミクへの通知
- mixiアプリ上で行った作業情報の保存
DataRequest#addメソッド
DataRequestクラスのaddメソッドを利用することで、ユーザー情報の取得を、リクエストのパラメータとして設定できます。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
addメソッドでは、第1引数に「どのデータを取得、または、更新するか」を指し示す、Request用オブジェクトを指定します。ユーザー情報を取得するためには、newFetchPersonRequestメソッドによって得られるオブジェクトを指定します。
第2引数は、「依頼した結果受け取るレスポンスのうち、どの“キー”にデータが格納されるか」を指定します。詳しくは、レスポンスの処理の部分で再度説明します。
次ページでは、引き続きAPIを紹介して、最後にリファクタリングとして、モデルにユーザー情報を取得させます。
Copyright © ITmedia, Inc. All Rights Reserved.