SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Facebookモバイルアプリ開発チュートリアル

Facebookモバイルアプリの開発方法

Facebookモバイルアプリ開発チュートリアル(3)

作成したJavaScript

 今回作成したMain.jsは、以下の通りです。

Main = function()
{
  //FaceBookアプリID , cookie , oauth
  var fc = new FacebookClass('App ID の番号' , true , true);
  fc.addEventListener("onLogin", this);

  this.onLogin = function()
  {
    //ロードしたらする処理。
    fc.removeEventListener("onLogin", this);
    console.log("ログイン成功しました");

    //FQLオプションを第三引数にいれる。第三引数に何個でも取り出せる。
    //第一引数は何人取得するか。0で全員になる
    //ランダムに取得するか。ランダムの場合は全員でもシャッフルされて返ってくる
    fc.addEventListener("onGetFriendsData", this);
  fc.getFriendsData( 0 , "random" , 'sex , pic_square');
  };

  this.onGetFriendsData = function()
  {
    fc.removeEventListener("onGetFriendsData", this);
    if(fc.friendsDataArray.length <= 0)
    {
      alert("フレンド情報が見つかりませんでした");
    }
    else
    {
      //名前と写真の情報を取り出すメソッドを実行。
      onStart();
    }

  };

  function onStart()
  {
    var male = 0;
    var female = 0;
    var malePics=[];
    var femalePics=[];
      for(var i = 0 ; i < fc.friendsDataArray.length ; i++)
      {
        var friendObj = fc.friendsDataArray[i];
        if(friendObj.sex == "male")
        {
          male++;
        if(male < 6)
        {
          malePics.push(friendObj.pic_square);
        }
      }
      else
      {
        female++;
        if(female < 6)
        {
          femalePics.push(friendObj.pic_square);
        }
      }
    }

    var maleStr = "男性の友達は" + Math.round((male /(male + female)) * 100)+"%" ;
    var femaleStr = "女性の友達は" + Math.round((female /(male + female)) * 100)+"%" ;

    //HTMLに画像やテキストを入れていく。
    //男女のDOMオブジェクトを取得
    MaleObject=document.getElementById("Male");
    FemaleObject=document.getElementById("Female");

    //「友達は○○%」を変える
    MaleObject.childNodes[1].innerHTML=maleStr;
    FemaleObject.childNodes[1].innerHTML=femaleStr;

    //写真を5枚いれていく。
    var maleNode=MaleObject.childNodes[3].childNodes;
    var femaleNode=FemaleObject.childNodes[3].childNodes;

    for(var i=0;i < 5;i++)
    {
      maleNode[1+2*i].src=malePics[i];
      femaleNode[1+2*i].src=femalePics[i];
    }

    //他何名のところを埋める。※友達5人以下の場合は、他0名にする。
    //男性の場合。
    if(male>5)
    {
      MaleObject.childNodes[5].innerHTML="他"+(male-5)+"名";
    }
    else
    {
      MaleObject.childNodes[5].innerHTML="他0名";
    }

    //女性の場合。
    if(female>5)
    {
      FemaleObject.childNodes[5].innerHTML="他"+(female-5)+"名";
    }
    else
    {
      FemaleObject.childNodes[5].innerHTML="他0名";
    }
  }
};

 それぞれのデータをfriendsDataArrayから取得して、HTMLの該当箇所に表示しています。jAction自体は、Facebookだけでなく、色々な機能が実装されています。ぜひ色々試してみてください。

 次回は、HTML5の特色の1つでもある「Canvas」を使い、より動的なFacebookアプリを作ってみたいと思います。

この記事は参考になりましたか?

連載通知を行うには会員登録(無料)が必要です。
既に会員の方はを行ってください。
Facebookモバイルアプリ開発チュートリアル連載記事一覧

もっと読む

この記事の著者

大渕脇 昭人(jActionプロジェクト)(オオフチワキ アキト(ジェイアクションプロジェクト))

Founder/ウェブデベロッパー。音響メーカーハードエンジニアを経て、アニメーション映像、コンテンツ制作へ転向。2005年に有限会社クリエイトウェーブを設立。スマートフォン向けHTML5ウェブアプリ制作にあたり、生産性改善の必要を感じた自身の経験から本プロジェクトを発案。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/6643 2012/07/06 14:00

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー