Download the source code from here ( Get the location of the facebook user using the Graph API in android )
activity_main.xml
<LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" xmlns:android="http://schemas.android.com/apk/res/android"> <ImageView android:layout_width="100dp" android:layout_height="100dp" android:id="@+id/iv_image" android:layout_marginTop="10dp" android:layout_marginBottom="10dp" android:layout_gravity="center_horizontal" android:src="@drawable/profile"/> <LinearLayout android:layout_width="match_parent" android:orientation="horizontal" android:layout_height="wrap_content"> <TextView android:layout_width="100dp" android:layout_height="40dp" android:text="Name" android:gravity="center_vertical" android:textSize="15dp" android:textColor="#000000" android:layout_marginLeft="10dp" android:layout_marginTop="10dp"/> <TextView android:layout_width="wrap_content" android:layout_height="40dp" android:text="Name" android:textSize="15dp" android:id="@+id/tv_name" android:gravity="center_vertical" android:textColor="#000000" android:layout_marginLeft="10dp" android:layout_marginTop="10dp"/> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <TextView android:layout_width="100dp" android:layout_height="40dp" android:text="Email" android:gravity="center_vertical" android:textSize="15dp" android:layout_below="@+id/tv_name" android:textColor="#000000" android:layout_marginLeft="10dp" android:layout_marginTop="10dp"/> <TextView android:layout_width="wrap_content" android:layout_height="40dp" android:layout_below="@+id/tv_name" android:text="Email" android:gravity="center_vertical" android:textSize="15dp" android:id="@+id/tv_email" android:textColor="#000000" android:layout_marginLeft="10dp" android:layout_marginTop="10dp"/> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <TextView android:layout_width="100dp" android:layout_height="40dp" android:text="DOB" android:gravity="center_vertical" android:textSize="15dp" android:textColor="#000000" android:layout_marginLeft="10dp" android:layout_marginTop="10dp"/> <TextView android:layout_width="wrap_content" android:layout_height="40dp" android:layout_below="@+id/tv_name" android:text="DOB" android:gravity="center_vertical" android:textSize="15dp" android:id="@+id/tv_dob" android:layout_toRightOf="@+id/tv_email" android:textColor="#000000" android:layout_marginLeft="10dp" android:layout_marginTop="10dp"/> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <TextView android:layout_width="100dp" android:layout_height="40dp" android:text="Location" android:gravity="center_vertical" android:textSize="15dp" android:textColor="#000000" android:layout_marginLeft="10dp" android:layout_marginTop="10dp"/> <TextView android:layout_width="wrap_content" android:layout_height="40dp" android:layout_below="@+id/tv_name" android:text="location" android:gravity="center_vertical" android:textSize="15dp" android:id="@+id/tv_location" android:textColor="#000000" android:layout_marginLeft="10dp" android:layout_marginTop="10dp"/> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:background="#6585C8" android:id="@+id/ll_facebook" android:layout_marginLeft="10dp" android:layout_marginRight="10dp" android:layout_marginTop="40dp" android:layout_height="50dp"> <ImageView android:layout_width="50dp" android:src="@drawable/facebook" android:id="@+id/iv_facebook" android:layout_height="50dp" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Login with Facebook" android:textSize="20dp" android:textColor="#FFFFFF" android:textStyle="bold" android:id="@+id/tv_facebook" android:layout_marginLeft="20dp" android:gravity="center" android:layout_gravity="center" /> </LinearLayout> </LinearLayout>
MainActivity.java
package facebooklocation.facebooklocation; import android.content.Intent; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; import android.content.pm.Signature; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.util.Base64; import android.util.Log; import android.view.View; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.TextView; import com.bumptech.glide.Glide; import com.facebook.AccessToken; import com.facebook.CallbackManager; import com.facebook.FacebookCallback; import com.facebook.FacebookException; import com.facebook.FacebookSdk; import com.facebook.GraphRequest; import com.facebook.GraphResponse; import com.facebook.HttpMethod; import com.facebook.login.LoginManager; import com.facebook.login.LoginResult; import org.json.JSONObject; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import java.util.Arrays; public class MainActivity extends AppCompatActivity implements View.OnClickListener { CallbackManager callbackManager; ImageView iv_image, iv_facebook; TextView tv_name, tv_email, tv_dob, tv_location, tv_facebook; LinearLayout ll_facebook; String str_facebookname, str_facebookemail, str_facebookid, str_birthday, str_location; boolean boolean_login; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); init(); getKeyHash(); listener(); } private void init() { iv_image = (ImageView) findViewById(R.id.iv_image); iv_facebook = (ImageView) findViewById(R.id.iv_facebook); tv_name = (TextView) findViewById(R.id.tv_name); tv_email = (TextView) findViewById(R.id.tv_email); tv_dob = (TextView) findViewById(R.id.tv_dob); tv_location = (TextView) findViewById(R.id.tv_location); tv_facebook = (TextView) findViewById(R.id.tv_facebook); ll_facebook = (LinearLayout) findViewById(R.id.ll_facebook); FacebookSdk.sdkInitialize(this.getApplicationContext()); } private void listener() { tv_facebook.setOnClickListener(this); ll_facebook.setOnClickListener(this); iv_facebook.setOnClickListener(this); } private void facebookLogin() { callbackManager = CallbackManager.Factory.create(); LoginManager.getInstance().registerCallback(callbackManager, new FacebookCallback<LoginResult>() { @Override public void onSuccess(LoginResult loginResult) { Log.e("ONSUCCESS", "User ID: " + loginResult.getAccessToken().getUserId() + "\n" + "Auth Token: " + loginResult.getAccessToken().getToken() ); GraphRequest request = GraphRequest.newMeRequest(loginResult.getAccessToken(), new GraphRequest.GraphJSONObjectCallback() { @Override public void onCompleted(JSONObject object, GraphResponse response) { try { boolean_login = true; tv_facebook.setText("Logout from Facebook"); Log.e("object", object.toString()); str_facebookname = object.getString("name"); try { str_facebookemail = object.getString("email"); } catch (Exception e) { str_facebookemail = ""; e.printStackTrace(); } try { str_facebookid = object.getString("id"); } catch (Exception e) { str_facebookid = ""; e.printStackTrace(); } try { str_birthday = object.getString("birthday"); } catch (Exception e) { str_birthday = ""; e.printStackTrace(); } try { JSONObject jsonobject_location = object.getJSONObject("location"); str_location = jsonobject_location.getString("name"); } catch (Exception e) { str_location = ""; e.printStackTrace(); } fn_profilepic(); } catch (Exception e) { } } }); Bundle parameters = new Bundle(); parameters.putString("fields", "id, name, email,gender,birthday,location"); request.setParameters(parameters); request.executeAsync(); } @Override public void onCancel() { if (AccessToken.getCurrentAccessToken() == null) { return;
Thanks!
source share