Blog purpose for android basic example for android app developer. any query please my contact

Saturday 3 December 2022

android integrate facebook example

 android integrate facebook  example



In this android example we will learn how to integrate facebook sdk to your android project, make facebook user login and post to facebook user wall.


Click here to see documentation given by facebook for android sdk integration.


There are various steps, Now we are going to explain facebook sdk integration step by step.




Step 1:

 AndroidManifest.xml:

<?xml version="1.0" encoding="utf-8"?>

<manifest xmlns:android="http://schemas.android.com/apk/res/android"

    package="com.android.facebook"

    android:versionCode="1"

    android:versionName="1.0" >

 

 

 

    <application

        android:icon="@drawable/ic_launcher"

        android:label="@string/app_name" >

        <activity

            android:label="@string/app_name"

            android:name="com.android.facebook.AndroidExampleFacebookActivity" >

            <intent-filter >

                <action android:name="android.intent.action.MAIN" />

 

                <category android:name="android.intent.category.LAUNCHER" />

            </intent-filter>

        </activity>

    </application>

     

    <strong><!-- Connect to Internet Permissions --></strong>

    <uses-permission android:name="<strong>android.permission.INTERNET</strong>"/>

 

</manifest>



Step 2:
AndroidExampleFacebookActivity:

package com.android.facebook;

 

import android.app.Activity;

import android.content.Intent;

import android.content.SharedPreferences;

import android.os.Bundle;

import android.util.Log;

import android.view.View;

import android.widget.Button;

import android.widget.Toast;

 

import com.facebook.android.AsyncFacebookRunner;

import com.facebook.android.AsyncFacebookRunner.RequestListener;

import com.facebook.android.DialogError;

import com.facebook.android.Facebook;

import com.facebook.android.Facebook.DialogListener;

import com.facebook.android.FacebookError;

 

import java.io.FileNotFoundException;

import java.io.IOException;

import java.net.MalformedURLException;

 

import org.json.JSONException;

import org.json.JSONObject;

 

@SuppressWarnings("deprecation")

public class AndroidExampleFacebookActivity extends Activity {

 

    // Facebook Application APP ID (Get it from faacebook app setting page)

    private static String APP_ID = "912301902217993";

 

    private AsyncFacebookRunner fbAsyncRunner;

    private SharedPreferences fbPrefs;

     

    // Create Object of Facebook Class

    private Facebook facebook = new Facebook(APP_ID);

     

     

    // Buttons

    Button fbLoginButton;

    Button fbMyProfileButton;

    Button fbFriendButton;

    Button fbPostToWallButton;

     

    @Override

    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.main);

 

        fbLoginButton = (Button) findViewById(R.id.login_btn);

        fbMyProfileButton = (Button) findViewById(R.id.profile_btn);

        fbPostToWallButton = (Button) findViewById(R.id.wall_btn);

        fbFriendButton = (Button) findViewById(R.id.friend_btn);

        fbAsyncRunner = new AsyncFacebookRunner(facebook);

 

        //Login button Clicked

        fbLoginButton.setOnClickListener(new View.OnClickListener() {

 

            @Override

            public void onClick(View v) {

                 

                facebookLogin();

                 

            }

        });

 

         

       // My facebook Profile info

        fbMyProfileButton.setOnClickListener(new View.OnClickListener() {

 

            @Override

            public void onClick(View v) {

                getFacebookProfileInfo();

            }

        });

 

        // Post at Facebook Wall

        fbPostToWallButton.setOnClickListener(new View.OnClickListener() {

 

            @Override

            public void onClick(View v) {

                 

                facebookWallPost();

                 

            }

        });

 

        // Post at Facebook Wall

        fbFriendButton.setOnClickListener(new View.OnClickListener() {

 

            @Override

            public void onClick(View v) {

                 

                getFacebookFriends();

                 

            }

        });

    }

 

    // Function for login

    public void facebookLogin() {

         

        // Create shared preference to save login or not

         

        fbPrefs = getPreferences(MODE_PRIVATE);

        String access_token = fbPrefs.getString("access_token", null);

         

        // Get Expire value from shared preference

        long expires = fbPrefs.getLong("access_expires", 0);

 

        if (access_token != null) {

            // Get facebook access token to call facebook Graph api

            facebook.setAccessToken(access_token);

             

            fbLoginButton.setVisibility(View.INVISIBLE);

             

            // Make button visible

            fbMyProfileButton.setVisibility(View.VISIBLE);

            fbPostToWallButton.setVisibility(View.VISIBLE);

            fbFriendButton.setVisibility(View.VISIBLE);

        }

 

        if (expires != 0) {

            facebook.setAccessExpires(expires);

        }

 

        if (!facebook.isSessionValid()) {

            facebook.authorize(this,

                    new String[] { "email", "publish_stream","user_friends" },

                    new DialogListener() {

 

                        @Override

                        public void onCancel() {

                            // Here work for facebook login page cancel event

                        }

 

                        @Override

                        public void onComplete(Bundle values) {

                             

                            // update Shared Preferences values

                            SharedPreferences.Editor editor = fbPrefs.edit();

                            editor.putString("access_token",

                                    facebook.getAccessToken());

                            editor.putLong("access_expires",

                                    facebook.getAccessExpires());

                            editor.commit();

 

                            // Make button invisible

                            fbLoginButton.setVisibility(View.INVISIBLE);

 

                            // Make button visible

                            fbMyProfileButton.setVisibility(View.VISIBLE);

                            fbPostToWallButton.setVisibility(View.VISIBLE);

                            fbFriendButton.setVisibility(View.VISIBLE);

                             

                        }

 

                        @Override

                        public void onError(DialogError error) {

                            // Here Work for handle error

 

                        }

 

                        @Override

                        public void onFacebookError(FacebookError fberror) {

                            // Here Work for handle Facebook errors

 

                        }

 

                    });

        }

    }

 

    @Override

    public void onActivityResult(int requestCode, int resultCode, Intent data) {

        super.onActivityResult(requestCode, resultCode, data);

        facebook.authorizeCallback(requestCode, resultCode, data);

    }

 

 

    // My Profile information

    public void getFacebookProfileInfo() {

         

        // Make graph api call url like below line

        // https://graph.facebook.com/me?access_token=<your-api-token>&format=json

 

        fbAsyncRunner.request("me", new RequestListener() {

            @Override

            public void onComplete(String response, Object state) {

                Log.d("Profile", response);

                String json = response;

                try {

                    // Got My Facebook Profile data in JSON format

                    JSONObject profile = new JSONObject(json);

                     

                    // extract user name

                    final String name = profile.getString("name");

                     

                     

                    runOnUiThread(new Runnable() {

 

                        @Override

                        public void run() {

                            Toast.makeText(getApplicationContext(), "My Name: " + name , Toast.LENGTH_LONG).show();

                        }

 

                    });

 

                     

                } catch (JSONException e) {

                    e.printStackTrace();

                }

            }

 

            @Override

            public void onIOException(IOException e, Object state) {

            }

 

            @Override

            public void onFileNotFoundException(FileNotFoundException e,

                    Object state) {

            }

 

            @Override

            public void onMalformedURLException(MalformedURLException e,

                    Object state) {

            }

 

            @Override

            public void onFacebookError(FacebookError e, Object state) {

            }

        });

    }

 

    // My Freinds information

     

    public void getFacebookFriends() {

         

         // Make graph api call url like below line

         // https://graph.facebook.com/me/friends?access_token=<your-api-token>&format=json

 

              fbAsyncRunner.request("me/friends", new RequestListener() {

                @Override

                public void onComplete(String response, Object state) {

                     

                    Log.d("Number Of Freinds", response);

                     

                    String json = response;

                     

                    try {

                        // Got My Facebook Freinds in JSON format

                        JSONObject profile = new JSONObject(json);

                         

                        // extract user name

                        final String total_count = profile.getString("summary");

                         

                         

                        runOnUiThread(new Runnable() {

 

                            @Override

                            public void run() {

                                Toast.makeText(getApplicationContext(), "Number Of Friends: " + total_count , Toast.LENGTH_LONG).show();

                            }

 

                        });

 

                         

                    } catch (JSONException e) {

                        e.printStackTrace();

                    }

                }

 

                @Override

                public void onIOException(IOException e, Object state) {

                }

 

                @Override

                public void onFileNotFoundException(FileNotFoundException e,

                        Object state) {

                }

 

                @Override

                public void onMalformedURLException(MalformedURLException e,

                        Object state) {

                }

 

                @Override

                public void onFacebookError(FacebookError e, Object state) {

                }

            });

        }

 

     

    //Post to wall function

    public void facebookWallPost() {

         

        facebook.dialog(this, "feed", new DialogListener() {

 

            @Override

            public void onFacebookError(FacebookError e) {

            }

 

            @Override

            public void onError(DialogError e) {

            }

 

            @Override

            public void onComplete(Bundle values) {

            }

 

            @Override

            public void onCancel() {

            }

        });

 

    }

 

}




No comments:

Post a Comment