そごうソフトウェア研究所

SOA、開発プロセス、ITアーキテクチャなどについて書いています。Twitterやってます@rsogo

Facebookにアプリの登録をする

f:id:begirama:20120502201226j:image:w360
facebook DEVELOPERSのページで、「新しいアプリケーションを作成」

f:id:begirama:20120502201227j:image:w360
App Namesを適当に入れます。このとき、Facebook等のキーワードが入っているとInvalidになって進めません

f:id:begirama:20120502201228j:image:w360
セキュリティチェックを行い、設定を済ませます。

このとき、以下の様なエラーが出る場合は、携帯電話の登録等が必要なようです。
f:id:begirama:20120502201229j:image:w360

f:id:begirama:20120502201230j:image:w360
アカウントのモバイル設定から携帯電話を登録することで進めました。
この辺はセキュリティ対策ですね。

f:id:begirama:20120502201231j:image:w360
設定後の画面

f:id:begirama:20120502201232j:image:w360
今回はAndroidアプリを作るので、ネイティブAndroidアプリを選択
Android Key Hash等は後で設定します

AndroidからのFacebook連携準備編

手順はFacebook DevelopersのAndroid Tutorialに基本的には書いてある。
https://developers.facebook.com/docs/mobile/android/build/

  1. AndroidfacebookSDKの取得
  2. Facebookにアプリの登録をする
  3. OpenSSLのセットアップ(環境に入っていない場合のみ)
  4. アプリのKey Hashをfacebookに登録

事前にEclipseや、Android SDKはインストールされてあることを想定しています。

Androidのfacebook用SDKの取得

下記のサイトからSDKをダウンロード。
https://github.com/facebook/facebook-android-sdk

githubで取得するには次のようなコマンドでOK。githubでプロキシサーバを仲介する手順で少しはまりました。

$ git clone https://github.com/facebook/facebook-android-sdk.git
Cloning into 'facebook-android-sdk'...
remote: Counting objects: 1773, done.
remote: Compressing objects: 100% (573/573), done.
remote: Total 1773 (delta 822), reused 1637 (delta 721)
Receiving objects: 100% (1773/1773), 3.62 MiB | 720 KiB/s, done.
Resolving deltas: 100% (822/822), done.

githubを使っていなくても、SDKのサイトからZIPというボタンを押せば、SDKをダウンロードすることができます。

アプリのKey Hashをfacebookに登録

Javaで鍵や証明書を管理するkeytoolというツールと、上でセットアップしたOpenSSLを使ってKey Hashを作成します。

1.Javaのバージョン確認
>java -version
java version "1.6.0_18"
Java(TM) SE Runtime Environment (build 1.6.0_18-b07)
Java HotSpot(TM) Client VM (build 16.0-b13, mixed mode)



2.証明書をエクスポート
>keytool -exportcert -alias androiddebugkey -keystore .android\debug.keystore > cert.txt

キーストアの場所はデフォルトではここにあります。
\.android\debug.keystore
キーストアのパスワード'android'です。
これはデバッグ用なのかな?本番はどうするのだろうか。



3.証明書ファイルをバイナリ形式で読み込んでSHA1でエンコード
>openssl sha1 -binary cert.txt > sha1.txt



4.SHA1エンコードされたデータをbase64形式でテキストに変換
>openssl base64 -in sha1.txt
テキストが出力されます。

このテキストをFacebook上のアプリの管理画面でAndroid Key Hashに設定します。
f:id:begirama:20120515195241j:image:w640