Pre-requisite
Official Document: https://developers.Facebook.com/docs/android/
Official Tutorial: https://developers.facebook.com/docs/android/login-with-facebook/v2.2
Previous Article: http://www.kpbird.com/2013/03/android-login-using-facebook-sdk-30.html
1. Facebook Android SDK 3.0 -Download
2. Facebook API Key from Facebook Application - Detail
3. Hash Key of your debug certificate - Detail
Usage
Step 1: Import "FacebookLoginUtils.java" class in your package
Step 2: Implement callback listener
public class MyActivity extends Activity implements FacebookLoginUtils.FacebookLoginStatus
Step 3: Declare callback method
@Override
public void OnSuccessFacebookLogin(Bundle profile) {
Log.i(TAG,profile.getString(FacebookLoginUtils.USERID));
Log.i(TAG,profile.getString(FacebookLoginUtils.EMAIL));
Log.i(TAG,profile.getString(FacebookLoginUtils.NAME));
Log.i(TAG,profile.getString(FacebookLoginUtils.FIRST_NAME));
Log.i(TAG,profile.getString(FacebookLoginUtils.LAST_NAME));
}
Step 4: Declare object of FacebookLoginUtils.java
private FacebookLoginUtils fLogin;
Step 5: Initialize object in onCreate method
fLogin = new FacebookLoginUtils(this, R.id.activity_login_fb);
fLogin.setLoginStatus(this);
fLogin.setEnable(true);
Step 6: Declare few supporting methods
protected void onResume() {
super.onResume();
fLogin.onResume();
};
@Override
protected void onPause() {
super.onPause();
fLogin.onPause();
}
@Override
protected void onDestroy() {
super.onDestroy();
fLogin.onDestroy();
}
@Override
protected void onActivityResult(int requestCode, int responseCode,Intent intent) {
fLogin.onActivityResult(requestCode, responseCode, intent);
}
FAQ
Q: What is the problem of above approach ?
A: You activity has a lot of scattered code for Facebook login, It will be more complex and unmanageable when you will have another social network login like Facebook and Twitter.
Q: How I will receive a response for login success?
A: You need to implement interface "FacebookLoginStatus", on successful login you will receive callback "OnSuccessFacebookLogin"
Q: What will be received on login success ?
A: You will have Name, Email , First Name, Last Name, User Id.
Q: Do I need to Handle Login Failure / error ?
A: No, FacebookLoginUtils.java will handle login failure, error and display appropriate message on screen.
Note: Change facebook app key in /res/values/strings.xml#facebook_app_id
Download Code