はじめに
ぶちをと申します。
今回はAndroidStudioでFacebookSDKを導入して、ログイン機能を試すまでをやってみます。
FacebookSDK4.xと3.xとじゃ使われなくなったものや変更点がちらほら見受けられたので、書き残しておこうと思いました。
環境
AndroidStudio 1.5
FacebookSDK 4.8.2
導入
AndroidStudioにFacebookSDKを導入します。
予め、Facebookで開発者登録をしてfacebookの方でアプリを登録しておいてください。
facebookのSDKを入れるのは凄く簡単で、次のコードをapp/build.gradleに記述するだけです。
1.dependencies{}より前に以下のコードを書く。
repositories {
mavenCentral()
}
2.dependencies内にsdk4.7.0を入れると記載。バージョンはここで変えられます。
dependencies {
compile 'com.facebook.android:facebook-android-sdk:4.7.0' //追加
}
以上でSDK導入は完了です。
ログイン
次はログイン機能を試してみましょう。実際に最後サンプルコードをのっけておきますが、必要なところをピックアップして説明します。
1.ログイン機能を使用する際必ず記載します。3.x系だとLoginActivityにあたるものになります。4.xからはFacebookActivityに変わります。そのままLoginActivityと書いているとエラーになってしまいますので、注意してください。
<activity android:name="com.facebook.FacebookActivity"
android:configChanges=
"keyboard|keyboardHidden|screenLayout|screenSize|orientation"
android:theme="@android:style/Theme.Translucent.NoTitleBar"
android:label="@string/app_name" />
2.ログイン機能を使う際のサンプル(一部抜粋)
private CallbackManager callbackManager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final MainActivity activity = this;
/*-- facebook SDK --*/
Button btnFacebook = (Button) findViewById(R.id.login_btnFacebook);
btnFacebook.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//1.onClick内にログインのパーミッションを設定(LoginButtonを使用しない場合)
LoginManager.getInstance().logInWithReadPermissions(activity, Arrays.asList("public_profile", "email")); //profileとemailの情報を取得
}
});
//2.facebook利用する時のInitialize
FacebookSdk.sdkInitialize(this);
//3.コールバック登録
callbackManager = CallbackManager.Factory.create();
LoginManager.getInstance().registerCallback(callbackManager,
new FacebookCallback<LoginResult>() {
@Override
public void onSuccess(LoginResult loginResult) {
//3.1 ログイン成功
}
@Override
public void onCancel() {
//3.2 ログインキャンセル
}
@Override
public void onError(FacebookException exception) {
//3.3 ログイン失敗
}
});
/*-- /facebook SDK --*/
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
//4.コールバック設定(Activity戻ってきた時にコールバックを呼ぶ)
callbackManager.onActivityResult(requestCode, resultCode, data);
}
サンプル
サンプル内では、名前、メール、サムネ取得までをやっております。
サンプルを動かす際の注意点
サンプルを動かす際の注意点ですが、必ずご自身のfacebookAppIDをご利用下さい。でないと動きません。
サンプル内では入力されていない状態になっているので、必ず入力ください。
<string name="app_id">ご自身のappID</string>
最後に
ここまでお付き合いくださりありがとうございました。
Qiita初投稿で、はじめてGitHubを使ってみました。
皆様の参考になれば幸いです。
参考
Facebook Android SDK のサンプルコードを動かす方法
How can I login facebook with my own button? (Facebook SDK 4.0)
facebookのリファレンス
https://developers.facebook.com/docs/facebook-login/android
https://developers.facebook.com/docs/android/graph/