検索
連載

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

PC用表示 関連情報
Share
Tweet
LINE
Hatena
前のページへ |       

DataRequest#newFetchPersonRequestメソッド

DataRequestクラスのnewFetchPersonRequestメソッドの第1引数は、次のものが指定できます。

  • ビューアー:opensocial.IdSpec.PersonId.VIEWER
  • オーナー:opensocial.IdSpec.PersonId.OWNER
  • そのほかのユーザー:直接ID指定

 ユーザー情報は常に取得できるわけではなく、mixiアプリでは次のような条件があります。

  • VIEWER情報:ビューアーが、そのアプリをインストールしていれば取得できる。オーナーとマイミクである必要はない
  • OWNER情報:ビューアーがそのアプリをインストールしていなくても取得できる。ビューアーとマイミクである必要はない
  • 直接ID指定:指定されたユーザーがマイミクであれば取得できる。そのアプリをインストールしている必要はない

DataRequest#sendメソッド

 DataRequestクラスのsendメソッドにて、作成したリクエストを送信します。sendメソッドにはレスポンスのイベントハンドラを指定します。

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

DataResponseクラス

 sendメソッドのイベントハンドラには、DataResponseクラスのインスタンスが渡ります。

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

 まず、リクエストが成功したかどうかを、hadErrorメソッドで検査し、失敗していた場合は、ビューの中でgetErrorMessageメソッドを使ってエラーメッセージを表示します。

コントローラー

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

ビュー

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

 リクエストが成功していた場合は、getメソッドを使ってデータを取得します。getメソッドの第1引数には、DataRequest#addメソッドを呼び出す際に指定したキーとして、「fetchViewer」を指定します。getメソッドは結果として、ResponseItemクラスのインスタンスが返されます。

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

ResponseItemクラス

 ResponseItemクラスに関しても、データ取得が成功したかどうかを、hadErrorメソッドで検査し、失敗していた場合は、getErrorMessageメソッドを使ってエラーメッセージを表示します。

コントローラー

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

ビュー

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

 データの取得が成功していたら、getDataメソッドを呼び出して、リクエストしたPersonインスタンスを取得します。

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

 リクエストが成功しても、データの取得に失敗する理由はgetErrorCodeメソッドの値と、定義済み定数の合致を検査することで確認できます。

Personクラス

 ビュー内で、PersonインスタンスのgetDisplayNameメソッドとgetFieldメソッドを使用して、ビューアーの名前とサムネイルを取得して表示します。

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

 getFieldの第1引数は、指定可能なフィールドの定数の一覧から、選んで指定します。取得可能なフィールドはOpenSocialコンテナごとに異なるので、注意が必要です。opensocial.EnvironmentのsupportsFieldメソッドを使用すれば、動的に判定可能です。

【リファクタリング】モデルにユーザー情報を取得させる

 次に、OpenSocialコンテナからユーザー情報を取得するロジックをMVCのM(モデル)側に移すようにリファクタリングをしてみます。ガジェットXMLのcanvasビュー用のContentタグ内に、次の記述を追加しました。

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

 コントローラーではモデルに新たに用意した「loadViewer」を、正常終了時のハンドラと、エラー時のハンドラを渡しながら呼び出すように修正しました。

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

モデルのコード

 コントローラーにあったOpenSocial JavaScript APIを使う部分は、モデルに次のように移しました。

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

 このようにすることで、役割に応じてコードをすっきり整理できました。

次回は、文章を“保存”するには

 今回は、ビューアーの情報を取得するためのOpenSocial JavaScript APIについて説明しました。また、MVCの役割ごとでソースコードを分割することで、コードがすっきりすることを説明しました。次回以降は、ひとことの文章をOpenSocialコンテナに保存し、それを表示したり、それをマイミクに通知する方法について説明していきます。

 今回のソースコードをダウンロードすることもできるので、よろしければご覧ください。

著者紹介

株式会社アークウェブ

志田 裕樹(しだ ゆうき)

株式会社アークウェブ取締役。Webシステムのシステムエンジニアとして開発に従事している。

Ajax、Ruby on Rails等を使用したWeb 2.0的システムの開発実績を持つ。

オープンソースのECサイト用CMS、Zen Cartの日本語コミュニティでコミッターとして活動している。


Copyright © ITmedia, Inc. All Rights Reserved.

前のページへ |       
ページトップに戻る