Over a million developers have joined DZone.

Android Login with Facebook

· Java Zone

What every Java engineer should know about microservices: Reactive Microservices Architecture.  Brought to you in partnership with Lightbend.


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: Your 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. 

Microservices for Java, explained. Revitalize your legacy systems (and your career) with Reactive Microservices Architecture, a free O'Reilly book. Brought to you in partnership with Lightbend.

Topics:

Published at DZone with permission of Ketan Parmar, DZone MVB. See the original article here.

Opinions expressed by DZone contributors are their own.

The best of DZone straight to your inbox.

SEE AN EXAMPLE
Please provide a valid email address.

Thanks for subscribing!

Awesome! Check your inbox to verify your email so you can start receiving the latest in tech news and resources.
Subscribe

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}