検索
連載

一般公開されたmixiアプリ、その作り方は?基礎から分かる、mixiアプリ作成入門(2)(2/3 ページ)

PC用表示 関連情報
Share
Tweet
LINE
Hatena

mixiアプリの作り方からOpenSocialの仕様を学ぶ

前回の記事で、「mixiアプリはOpenSocialの仕様に基付いている」と説明しました。具体的には、ガジェットからJavaScriptを実行し、OpenSocial JavaScript APIの、Personクラスのインスタンスを利用することで名前などの情報を取得できます。

オーナーとビューアー

 OpenSocialのアプリケーションでは、以下のようにユーザーを明確に分けて扱います。

  • ビューアー:アプリケーションを閲覧している人:アプリケーションを閲覧している人
  • オーナー:アプリケーションをインストールしている人:アプリケーションをインストールしている人

 例えば、AさんとBさんが「X」というアプリケーションをインストールしている場合、次のようなケースがあります。

表1 オーナーとビューアーの関係
  ビューアー オーナー
Aさんが、BさんのプロフィールページでXアプリを開いた Aさん Bさん
Aさんが、AさんのプロフィールページでXアプリを開いた Aさん Aさん

 OpenSocialアプリケーションでは、ビューアーとオーナーが一致しているかどうかで表示内容を変更することがよくあります。

 「ひとこと」でも、新しくつぶやくための入力インターフェイスを、ビューアーとオーナーが一致している場合のみ表示することで、他人のアプリページからはつぶやけないようにしています。

 今回は、ビューアーの情報を表示してみましょう。

ビューアーの名前とサムネイルを表示するには?

 前回までのソースコードに手を加えて、APIを通じて、ビューアーのPersonオブジェクトを取得し、キャンバスビューにて名前とサムネイルを表示してみましょう。

 Personオブジェクトの取得はMVCのM(モデル)に行わせたいところですが、まずは、C(コントローラー)に書いて、その後モデルに処理を移すことにします。コントローラーのonLoadCanvasメソッドを、次のように書き変えました。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

ビューのコード

 コントローラーは、新たに用意されたV(ビュー)のメソッド「showError」「showViewer」を呼ぶようになっています。先に、ビューのコードを見ておきましょう。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

実行結果

 このコードの実行結果は、次のようになります。

図2 サンプルの実行結果
図2 サンプルの実行結果

ビューアー情報取得で使うOpenSocial JavaScript API

 上記のコントローラーとビューの中で使用されているOpenSocial JavaScript APIのメソッドは、表2のようになっています(表2のクラス一覧はインデックスになっています)。

表2 サンプルで使っているOpenSocial JavaScript APIのメソッド
クラス メソッド
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.

ページトップに戻る