1|2|3DataRequest#newFetchPersonRequestメソッドDataRequestクラスのnewFetchPersonRequestメソッドの第1引数は、次のものが指定できます。ビューアー:opensocial.IdSpec.PersonId.VIEWERオーナー:opensocial.IdSpec.PersonId.OWNERそのほかのユーザー:直接ID指定ユーザー情報は常に取得できるわけではなく、mixiアプリでは次のような条件があります。VIEWER情報:ビューアーが、そのアプリをインストールしていれば取得できる。オーナーとマイミクである必要はないOWNER情報:ビューアーがそのアプリをインストールしていなくても取得できる。ビューアーとマイミクである必要はない直接ID指定:指定されたユーザーがマイミクであれば取得できる。そのアプリをインストールしている必要はないDataRequest#sendメソッドDataRequestクラスのsendメソッドにて、作成したリクエストを送信します。sendメソッドにはレスポンスのイベントハンドラを指定します。});DataResponseクラスsendメソッドのイベントハンドラには、DataResponseクラスのインスタンスが渡ります。{まず、リクエストが成功したかどうかを、hadErrorメソッドで検査し、失敗していた場合は、ビューの中でgetErrorMessageメソッドを使ってエラーメッセージを表示します。}リクエストが成功していた場合は、getメソッドを使ってデータを取得します。getメソッドの第1引数には、DataRequest#addメソッドを呼び出す際に指定したキーとして、「fetchViewer」を指定します。getメソッドは結果として、ResponseItemクラスのインスタンスが返されます。res.get("fetchViewer");ResponseItemクラスResponseItemクラスに関しても、データ取得が成功したかどうかを、hadErrorメソッドで検査し、失敗していた場合は、getErrorMessageメソッドを使ってエラーメッセージを表示します。}データの取得が成功していたら、getDataメソッドを呼び出して、リクエストしたPersonインスタンスを取得します。resItem.getData();リクエストが成功しても、データの取得に失敗する理由はgetErrorCodeメソッドの値と、定義済み定数の合致を検査することで確認できます。Personクラスビュー内で、PersonインスタンスのgetDisplayNameメソッドとgetFieldメソッドを使用して、ビューアーの名前とサムネイルを取得して表示します。/>');getFieldの第1引数は、指定可能なフィールドの定数の一覧から、選んで指定します。取得可能なフィールドはOpenSocialコンテナごとに異なるので、注意が必要です。opensocial.EnvironmentのsupportsFieldメソッドを使用すれば、動的に判定可能です。【リファクタリング】モデルにユーザー情報を取得させる次に、OpenSocialコンテナからユーザー情報を取得するロジックをMVCのM(モデル)側に移すようにリファクタリングをしてみます。ガジェットXMLのcanvasビュー用のContentタグ内に、次の記述を追加しました。src="http://ドメイン/ディレクトリ/javascripts/user.js"></script>コントローラーではモデルに新たに用意した「loadViewer」を、正常終了時のハンドラと、エラー時のハンドラを渡しながら呼び出すように修正しました。APIを使う部分は、モデルに次のように移しました。}このようにすることで、役割に応じてコードをすっきり整理できました。APIについて説明しました。MVCの役割ごとでソースコードを分割することで、コードがすっきりすることを説明しました。次回以降は、ひとことの文章をOpenSocialコンテナに保存し、それを表示したり、それをマイミクに通知する方法について説明していきます。ゆうき)株式会社アークウェブ取締役。Webシステムのシステムエンジニアとして開発に従事している。2.0的システムの開発実績を持つ。Cartの日本語コミュニティでコミッターとして活動している。メールマガジンをご購読ください。申し込みページへITmediaはアイティメディア株式会社の登録商標です。