Facebook Android SDK とは
Android アプリから Facebook の機能(認証、Graph API、プラットフォームダイアログなど)を使うためのライブラリです。
Facebook Developers の Mobile Apps のところに説明があります。ここの情報に従って進めていきます。
Facebook Android SDK の入手
Facebook Android SDK は github で公開されています。
git でソースをダウンロードします。
$ git clone git://github.com/facebook/facebook-android-sdk.git
facebook-android-sdk というディレクトリができます。 ちなみに git を使わなくても、 github のページからダウンロード可能です。
eclipse にプロジェクトを追加
Facebook Android SDK を使ったアプリの作成
早速、 Facebook Android SDK を使ったアプリを作ってみます。
まずは新規のプロジェクトを作成します。
使用するライブラリに Facebook Android SDK を加えます。
- プロジェクトの [Properties] を開き、左のリストから [Android] を選びます。
- Library の [Add] ボタンを押して、 最初に作成した Facebook Android SDK のプロジェクトを指定する。
Facebook を使うからには通信を行うので、 uses-permission に INTERNET を追加します。
- AndroidManifest.xml を開く
- [Permissions] タブをクリック
- [Add] ボタンをクリック
- [Uses Permission] 選択して OK をクリック
- 右側の [Name] ドロップダウンから [INTERNET] を選択
これで Facebook Android SDK を使ったアプリの原型ができました。
Facebook 側での準備
Facebook 側にも準備が必要です。
- Developer App を開き、 [Set Up New App] ボタンをクリック
- 好きなアプリケーション名を入力して、 [Create App] をクリック
名前に Facebook とかが入ってるとダメみたいなので注意
- 左側のリストから [Mobile and Devices] をクリックし、 Key Hash を入力します。
Eclipse ではビルドするとデフォルトでデバッグ用のキーで署名されるので、ここではデバッグ用のキーから Key Hash を作ります。
keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore | openssl sha1 -binary | openssl base64
パスワードは android です。
これで準備が整いました。
コードを追加する
ではコードを追加してみます。
Facebook Developer のサンプルコードを少し変更してビルドします。
1: package com.myfirstfacebookapp; 2: 3: import android.app.Activity; 4: import android.content.Intent; 5: import android.os.Bundle; 6: 7: import com.facebook.android.DialogError; 8: import com.facebook.android.Facebook; 9: import com.facebook.android.Facebook.DialogListener; 10: import com.facebook.android.FacebookError; 11: 12: public class MyFirstFacebookApp extends Activity { 13: // 引数は Facebook から取得した App ID 14: Facebook facebook = new Facebook("135741723160602"); 15: 16: /** Called when the activity is first created. */ 17: @Override 18: public void onCreate(Bundle savedInstanceState) { 19: super.onCreate(savedInstanceState); 20: setContentView(R.layout.main); 21: 22: facebook.authorize(this, new DialogListener() { 23: @Override 24: public void onComplete(Bundle values) {} 25: 26: @Override 27: public void onFacebookError(FacebookError error) {} 28: 29: @Override 30: public void onError(DialogError e) {} 31: 32: @Override 33: public void onCancel() {} 34: }); 35: } 36: 37: @Override 38: protected void onActivityResult(int requestCode, int resultCode, Intent data) { 39: super.onActivityResult(requestCode, resultCode, data); 40: 41: facebook.authorizeCallback(requestCode, resultCode, data); 42: }
14 行の App ID は Developer App から確認できます。
起動したら認証を行うだけのアプリですね。
実行してみる
追記
Facebook Android SDK の認証機能は Facebook for Android (Facebook 公式の Android アプリ) の機能を使っているようです。 このアプリがサインオン状態を覚えておく事で Android でのシングルサインオンを実現しているのでしょうか。 なので、アプリを入れていないと挙動が変わります。
- 画面が違う
- 毎回ログインを求められる
0 件のコメント:
コメントを投稿