プログラマーのメモ書き

伊勢在住のプログラマーが気になることを気ままにメモったブログです

【Android】 Facebook連携アプリのサンプル(1/2):準備

最近、Facebook連携アプリを作る機会があったので、手順をまとめておきます。作るアプリはFacebookへログインして、自分のタイムラインに投稿する機能を持ったアプリとします。

ちょっと前の作業だったので詳しい手順などはうろ覚えですが、備忘録代わりにメモっておきます。なお、開発環境等は下記のとおりです。

  • OS:Ubuntu10.04 LTS (32bit版)
  • Eclipse 4.2, Classic
  • ADT:21.1.0
  • SDK Tool: r21.1
  • FacebookSDK:3.0

 

Facebook開発者の登録について

Facebookと連携するアプリを作る場合、Facebook開発者として登録することが必要です。この際、開発者用の専用アカウントを作らず、自分のアカウント(本名のアカウント)で登録する必要があります(Facebookの実名主義も徹底してますね)。一応、アプリのテスト時にはテスト用アカウントを作成できるそうです(今回は試しませんでした)。詳しくは『プラットフォームの基礎情報』を参照してください。

 

なお、Facebook開発者の登録時には、携帯電話番号(携帯のメールアドレス)か、クレジットカード番号が必要になります(今回の場合は、携帯メールアドレスを使いました)。

 

具体的な手順としては、開発者用アプリのページなどへアクセスすると、開発者登録が未登録だと自動的に登録画面が表示されたと思います。

あとは画面の指示に従って、認証すればOKです。

 

FacebookSDKのダウンロード

次に、Getting Started with the Facebook SDK for Androidにもあるように、SDKをダウンロードします。ダウンロード後、適当なディレクトリにSDKを解凍すると、下記のようにいくつかのフォルダが作成されます。

 

mor@LaptopDev:~/tmp/facebook-android-sdk-3.0$ ls -F
CONTRIBUTING.mdown  LICENSE.txt  NOTICE.txt  README.mdown  bin/  docs/  facebook/  samples/
mor@LaptopDev:~/tmp/facebook-android-sdk-3.0$ 

 

SDKそのものは、Androidのライブラリプロジェクトになっており、facebookフォルダ配下にあります。また、各種サンプルがsamplesディレクトリ以下に入っています。

 

binには、apkファイルが入っています。このapkファイルの用途は次のようになります。

作成したアプリが認証を行う際に、Facebookアプリ(Google PlayでFacebookが配布しているアプリ)がスマートフォンにインストールされてる場合、その機能が利用されます。実際の端末でテストする場合は、 単にGoogle Play からインストールすればよいのですが、エミュレータで行う場合、アプリをGoogle Playからインストールすることができません。その場合、このapkファイルを直接エミュレータにインストールすること で代用します。なお、Facebookアプリが無い状態でのテストであれば特にインストールする必要はありません。

 

FacebookSDKのインポート

サンプル用にAndroidプロジェクト(FacebookSampleとしておきます)をひとつ作っておきます。作り方は普通のAndroidプロジェクトと同じです。

次に、作成したAndroidプロジェクトと同じワークスペースにダウンロードしたFacebookSDKをインポートします。

Eclipseのメニューから、File -> Import を選択し、

ダイアログから、Android の Existing Android Code into Workspace を選択します。

下記のようなダイアログが表示されるので、

Root directory に、FacebookSDK を解凍したフォルダを指定すると、SDKおよびサンプルプロジェクトが自動的に表示されます。

 

今回はサンプルは取り込まないので、一旦、Deselect All ボタンを押して選択解除し、Facebook SDK のみを再度選択します。

また、Copy projects into workspace にチェックをつけておきます。こうすることでワークスペース内にSDKプロジェクトがコピーされるので、もし修正したい場合も自由にできます(コピーするしないは自由です)。

最後に、Finish ボタンを押すと問題なければSDKプロジェクトがPackage Explorer に表示されます。

 

なお、たまにエラーが出る場合があります。ビルドエラーの場合は、メニューより、Run -> Clean を選択し、問題なくリビルドされていれば問題ありません(通常、Run -> Build automatically にチェックが入って有効になっているため、Clean後に自動的にビルドが行われると思います)。

 

もし、『Android requires compiler compliance level 5.0 or 6.0.』 のようなエラーメッセージが出ている場合は、Java Compiler のバージョンがAndroid SDK が想定しているものと異なっているので、プロジェクトのプロパティから正しい設定を行ってください。Getting Started with the Facebook SDK for Androidの『3 Import the SDK into Eclipse』あたりに詳しく載っています。

 

FacebookSDK利用設定

次は作成するAndroidアプリ側でライブラリプロジェクトのFacebookSDKを利用できるように設定します。

Package Explorer から最初に作ったFacebookSample を選択し、右クリックをします。Properties を選択し、表示されたダイアログからAndroidを選びます。

下のほうにLibrary とある付近の、Addボタンを押します。

すると、下記のようなProject Selection のダイアログが表示されるので、

FacebookSDKを選択して、OKを押します。

これで、下記のようにLibraryにFacebookSDKが設定された状態になります。

さらに、Propertiesダイアログ画面のOKボタンを押します。

これで、FacebookSDKを利用することが可能になりました。

 

ところで、プロパティでOKボタンを押した後に、下記のようなエラーが出る場合があります。

これは、FacebookSDKライブラリに含まれているandroidサポートライブラリ(android-support-v4.jar)と、今回作ったFacebookSampleアプリで持っている同名のライブラリが異なっているというエラーです。

この場合、一方のライブラリで、他方のライブラリを上書きすればOKです(通常、新しいほうのライブラリで上書きすると思います)。

 

上書き後、Project -> Clean で、Clean all projects を選択して、問題なく再コンパイルされればOKです。

 

開発したいアプリの登録

今回開発するアプリは、Facebookにログインする必要があるので、Facebook側でも開発したいアプリを登録します。

まず、Facebook Developers のページへ移動します。次に、上側のメニューにあるAppsを選択します。『新しいアプリを作成』ボタンを押します。

上記のようなダイアログが表示されるので、必要な情報を入力します。なお、App Name にFacebookなどの名称が入っていると右側に、Failedのようなエラーメッセージが表示されます。

Androidアプリの場合は、Web Hosting の必要はないのでチェックしないでおきます。

入力に問題がなければ、下記のように緑色でチェック結果妥当であることが入力欄の右側に表示されます。

『続行』ボタンを押すと、セキュリティチェック用にCAPTHCA画像が表示されるので、それを入力して進みます。

問題がなければアプリの登録が完了します。

 

次いでアプリの基本設定画面が表示されます。

画面下部にある『アプリをFacebookに統合する方法を選択』で『ネイティブAndroidアプリ』を選択します。

入力欄が表示されるので、前節で作成したアプリの情報を入力します。

 

なお、Key Hashes には、Androidアプリを署名する際に使うキーストアから生成したハッシュ値を入力します。Linux/MaxOSの場合は下記コマンドで得ることができます(詳細はGetting Started with the Facebook SDK for Android参照)。

keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore | openssl sha1 -binary | openssl base64

 

一点注意があります。

Key Hashes はAndroidアプリの署名と対応しています。このため、デバッグ用に作成したAndroidアプリには、デバッグ用のキーストアから生成したキーハッシュを入力し、Google Play で配布するリリース版アプリの場合はリリース時に利用したキーストアから作成したキーハッシュを入力する必要があります。

ただ、キーハッシュの欄は複数の値を入力することができるので、デバッグ用とリリース用の2種類のキーハッシュを入れておくこともできます。

 

また、『Facebookログイン』は有効にチェックをつけておきます。今回のサンプルだと下記のようになります。

入力が終わったら、『変更を保存』ボタンを押して、保存します。

これで、一通りの準備は完了です。

 

次記事では、実際にコードを書いて、ログインして、タイムラインへ投稿するところをやってみたいと思います。