Androidでは、Facebook APIを利用するためのSDKが用意されています。
今回と次回の計2回に渡って、このFacebook Android SDKを用いてログインを行うところまでを解説したいと思います。
今回はまず準備段階として、Facebook Android SDKをAndroidプロジェクトに組み込む方法について解説します。
Facebook APIを利用してアプリケーションを作成する場合、Twitterなどと同様、OAuth認証をを用いてログインを行うことになります。
OAuth認証とは、アプリケーション作成者自身がログイン機能を作るのではなく、第3者機関(ここではFacebook)に認証を委譲してユーザーにログイン機能を提供する方法で、最近ではWebサービスを中心に広く普及しています(ATNDもその一つ)。
このOAuth認証を行う部分の実装については次回解説していきたいと思います。
Facebook Android SDKを利用するまでの手順は下図の通りです。
今回は上から4つめの「facebook-android-sdkをプロジェクトに組み込む」ところまでを解説します。
※Facebookのアカウントはあらかじめ取得しておく必要があります。
それでは一つずつ解説していきたいと思います。
facebook-android-sdkのダウンロード
まずはfacebook-android-sdkをダウンロードしてきます。
ダウンロードはこちらから行います。
gitからcloneする場合は以下のようにします。
git clone https://github.com/facebook/facebook-android-sdk.git
gitを利用しなくても、下図のDownloadsからzipもしくはtar.gzでダウンロードできます。
Facebook Developersに登録する
次にFacebook Developersにアプリケーションの登録を行います。
アプリケーションの登録を行うことで、API Keyを得る必要があります。
※Facebookのアカウントを取得していることが前提となります。
まず上記リンクにアクセスしたら、下図上部の「アプリ」をクリックします。
次に下図右上にある「新しいアプリケーションを作成」をクリックします。
すると以下のような画面が表示されます。
「App Name」にアプリケーション名を入力します。ただし、「Facebook」、「fb」などの単語が含まれている場合は登録できません。
「App Namespace」こちらはアプリケーションのURLに利用されます。
「Web Hosting」は、heroku(Webアプリケーションのデプロイを行えるサービス)を利用しない場合はチェックは付けなくても大丈夫です(今回は不要です)。
すると下図のようにアプリケーションが登録されます。「App ID」をメモしておいてください。
「アプリをFacebookに結合する方法を選択してください」で、ネイティブAndroidアプリのチェックを選択し、「Android Key Hash」を入力してボタンを押します。
Android Key Hashは、以下のコマンドを入力して得られます。
keytool -exportcert -alias androiddebugkey -keystore "{keystoreパス}" | openssl sha1 -binary | openssl base64
{keystoreパス}は、Eclipse→環境設定→Android→Buildの「Default debug keystore」に書かれている内容をそのまま入力します。
パスワードを聞かれますが、「android」と入力すれば大丈夫です。
下図は実際にコマンドを実行した際のターミナル画面です。一行目で先ほどのコマンドを、二行目でパスワードを入力し、3行目でKey Hashが表示されます。
これで準備は完了です。
facebook-android-sdkをプロジェクトに組み込む
ついにアプリを作り始めます。
まずは先ほどダウンロードしたfacebook-android-sdkをAndroidプロジェクトに組み込みます。
eclipseを起動し、Androidの新規プロジェクト(プロジェクト名はなんでもかまいません)を作成したら、srcディレクトリの上で右クリック→New→Packageを選択し、「com.facebook.android」パッケージを作成します。
解凍したfacebook-Android-sdkの以下のディレクトリ配下のファイルをすべて、作成した「com.facebook.android」パッケージ配下にコピーします。
/facebook-android-sdk/facebook/src/com/facebook/android
するとFbDialog.javaでエラーが出ます。これはリソースが足りないためにエラーになっています。
以下のディレクトリ配下にある画像ファイルを、すべてプロジェクトのresディレクトリの同様のフォルダに配置することで、エラーは解除されます。
/facebook-android-sdk/facebook/res/
以上でAndroidプロジェクトにSDKを組み込むことができました。
次回は、このプロジェクトを用いてログイン認証を行う方法について解説します。