ClientAPIを使ってユーザー情報を表示してみよう
Sandbox環境への接続に必要な設定が整ったので、早速クライアントアプリケーションからソーシャルAPIを呼び出してみましょう。
Mobageコミュニティボタンを表示する
Mobageのコミュニティボタンを表示するには、LIST3のようにshowCommunityButton関数をコールします。
// Socialモジュールをrequireする
var Social = require('../NGCore/Client/Social').Social;
// Mobageコミュニティボタンを左上に表示
Social.Common.Service.showCommunityButton(
  UI.ViewGeometry.Gravity.TopLeft, "default");
  第1引数に配置位置の定数であるUIモジュールの定数「TopLeft」を指定し、第2引数のThemeには「default」を指定します。表示されたコミュニティボタン(図4)をタップするとMobage GlobalのコミュニティのUIが立ち上がり、他のテストユーザーに友達リクエストを送信したり、ゲームにテストユーザーを招待したりするなど、本番と同等のコミュニティ機能を利用できます。
 
    ユーザー情報を取得して表示する
次に、ログインしているユーザーのプロフィール情報をデータとして取得してみましょう。
LIST4のように、getCurrentUser関数をコールしてログインしたユーザーのプロフィール情報を取得し、UIモジュールを使って表示してみます。
var Core = require('../NGCore/Client/Core').Core;
var UI = require('../NGCore/Client/UI').UI;
var Social = require('../NGCore/Client/Social').Social;
function main(){
  // Mobageコミュニティボタンを表示
  Social.Common.Service.showCommunityButton(
    UI.ViewGeometry.Gravity.TopLeft, "default");
  // ユーザー情報を取得して表示
  Social.Common.People.getCurrentUser(
    ["nickname", "thumbnailUrl"], function(error, user){
    if(error){
      // エラーの場合はログに出力して終了
      console.log(JSON.stringify(error));
      return;
    }
    var w = UI.Window.getWidth();
    var h = UI.Window.getHeight();
    // ニックネームをラベルで表示
    var nickname = user.nickname;
    var label = new UI.Label();
    label.setFrame(0, 0, w, 50);
    label.setText(nickname);
    UI.Window.document.addChild(label);
    // サムネイル画像を表示
    var thumbnailUrl = user.thumbnailUrl;
    var image = new UI.Image();
    image.setFrame([(w - 128)/2, 50, 128, 128]);
    image.setImage(thumbnailUrl);
    UI.Window.document.addChild(image);
    
  });
}
  getCurrentUserの第1引数には取得したいプロフィールのフィールドを指定しています。nicknameやthumbnailUrlの他にも、ユーザーIDや誕生日などの情報が取得可能です。APIとしてはCommon APIですが、取得できるフィールドはプラットフォームによって異なる場合があります。
例えば、血液型などは日本でのみ提供されているフィールドになり、Mobage Globalでは取得できません。第2引数には、実行結果を取得して画面に表示する処理を行うcallback関数を指定しています。AjaxのXMLHttpRequestを使ったWebアプリケーションを開発したことがある開発者の方にはおなじみのコーディングスタイルかと思います。実行すると図5のような結果が得られます。
 
    日本のプラットフォームは、Mobageでフィーチャーフォンの頃から使用されているアバター画像が使用されます。一方のMobage Globalでは、写真や画像などを選択してアップロードするスタイルでアバター画像はありません。海外のユーザーは、バーチャルなゲーム向けソーシャルグラフでも自分の顔写真を載せる人が多いようです。

 
              
               
                          
                           
                          
                           
                          
                           
                          
                           
                          
                           
                          
                           
                          
                           
                          
                           
                          
                           
                          
                           
                          
                           
                          
                           
                              
                               
                              
                               
                              
                               
                              
                               
                              
                               
                      
                     
                      
                     
                      
                     
                      
                     
                      
                     
                      
                     
                      
                     
															
														 
															
														.png) 
     
     
     
     
     
													 
													 
													 
													 
													 
										
									
 
                    
