前人未踏の領域へ Androidアプリ開発編

Androidアプリ開発に関する調査メモ置き場。古い記事にはアプリ以外も含まれます。

JavaScriptSDKに関するメモ

とりあえずざっくり直訳。
参考URL https://developers.facebook.com/docs/reference/javascript/

概要

JavaScript SDKFacebookのサーバーサイドAPIにアクセスするクライアントサイド機能のリッチセットを提供する。
これらはREST,認証、ダイアログの全ての機能を含む。アプリケーションの初期化にはapp IDが必要。

Loading

初期化処理。以下をbotyタグの直下に記述。YOUR_APP_IDとWWW.YOUR_DOMAIN.COMを登録したものに切り替る。

<div id="fb-root"></div>
<script>
  window.fbAsyncInit = function() {
    FB.init({
      appId      : 'YOUR_APP_ID', // App ID
      channelUrl : '//WWW.YOUR_DOMAIN.COM/channel.html', // Channel File
      status     : true, // check login status
      cookie     : true, // enable cookies to allow the server to access the session
      xfbml      : true  // parse XFBML
    });

    // Additional initialization code here
  };

  // Load the SDK Asynchronously
  (function(d){
     var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0];
     if (d.getElementById(id)) {return;}
     js = d.createElement('script'); js.id = id; js.async = true;
     js.src = "//connect.facebook.net/en_US/all.js";
     ref.parentNode.insertBefore(js, ref);
   }(document));
</script>

このコードはSDKを非同期にロードする。URLはプロトコルに対して相対的であり、HTTP,HTTPSどちらでもよい。
SDKがロードされるとすぐにwindow.fbAsyncInitが実行される。SDKロード後に実行した全てのコードはFB.init()の実行後に記述する。

FB.init については以下に詳細がある。
https://developers.facebook.com/docs/reference/javascript/FB.init/

Channel File

channel.htmlを作成し、以下の1行のみ記述

 <script src="//connect.facebook.net/en_US/all.js"></script>
  • 処理が重くなるのでexpiresを出来るだけ長く設定しブラウザにキャッシュさせること。
  • 必須ではないが設定を推奨

Authentication & Authorization(認証と認可)

JavaScriptSDK はサイトに対してFacebookアカウントによるログインを可能にする。Facebookにログインしているかぎりサイトへのログイン状態も継続できる。

  • FB.login
  • FB.logout
  • FB.getLoginStatus
  • FB.getAuthResponse

FB.Event.subscribeに上記のメソッドに関連する認証関連のイベントがある。

  • auth.login
  • auth.logout
  • auth.statusChange
  • auth.authResponseChange
Status & Sessions