Created
October 10, 2017 09:26
-
-
Save lalitsharma1607/77391a5bdde6d21b5cd3f1bc41deb190 to your computer and use it in GitHub Desktop.
Facebook Login in android
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
dependencies{ | |
.... | |
compile 'com.facebook.android:facebook-android-sdk:4.+' | |
.... | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
private CallbackManager callbackManager; | |
private LoginManager loginManager; | |
private ProgressDialog mProgressDialog; | |
public FragmentLogin() { | |
} | |
@Nullable | |
@Override | |
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { | |
View view = inflater.inflate(R.layout.fragment_login_container, null); | |
return view; | |
} | |
@Override | |
public void onCreate(@Nullable Bundle savedInstanceState) { | |
super.onCreate(savedInstanceState); | |
FacebookSdk.sdkInitialize(getActivity()); | |
setUpFacebook(); | |
} | |
@Override | |
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { | |
super.onViewCreated(view, savedInstanceState); | |
ButterKnife.bind(this, view); | |
signup.setOnClickListener(new View.OnClickListener() { | |
@Override | |
public void onClick(View view) { | |
//your code | |
} | |
}); | |
} | |
@Override | |
public void onStart() { | |
super.onStart(); | |
} | |
@OnClick(R.id.fb_login) | |
void connectToFacebook() { | |
if (AccessToken.getCurrentAccessToken() == null) | |
loginManager.logInWithReadPermissions(FragmentLogin.this, Arrays.asList("public_profile", "email", "user_birthday")); | |
else { | |
getFbDetails(AccessToken.getCurrentAccessToken()); | |
} | |
} | |
@Override | |
public void onActivityResult(int requestCode, int resultCode, Intent data) { | |
super.onActivityResult(requestCode, resultCode, data); | |
if (requestCode == RC_SIGN_IN && resultCode == Activity.RESULT_OK) { | |
try { | |
GoogleSignInResult result = Auth.GoogleSignInApi.getSignInResultFromIntent(data); | |
handleSignInResult(result); | |
} catch (Exception e) { | |
e.printStackTrace(); | |
} | |
} | |
Log.e("succes", "in fragment"); | |
} | |
private void setUpFacebook() { | |
callbackManager = CallbackManager.Factory.create(); | |
loginManager = LoginManager.getInstance(); | |
loginManager.registerCallback(callbackManager, | |
new FacebookCallback<LoginResult>() { | |
@Override | |
public void onSuccess(LoginResult loginResult) { | |
Log.e("email is", "successs"); | |
final AccessToken accessToken = loginResult.getAccessToken(); | |
getFbDetails(accessToken); | |
} | |
@Override | |
public void onCancel() { | |
// App code | |
} | |
@Override | |
public void onError(FacebookException exception) { | |
Toast.makeText(getActivity(), "error", Toast.LENGTH_LONG).show(); | |
// App code | |
} | |
}); | |
} | |
private void getFbDetails(AccessToken accessToken) { | |
Myutils.Showprogressbar(getActivity()); | |
GraphRequest request = GraphRequest.newMeRequest(accessToken, new GraphRequest.GraphJSONObjectCallback() { | |
@Override | |
public void onCompleted(JSONObject user, GraphResponse graphResponse) { | |
JSONObject jsonObject = graphResponse.getJSONObject(); | |
try { | |
String profilePicUrl = jsonObject.getJSONObject("picture").getJSONObject("data").getString("url"); | |
String email = user.optString("email"); | |
String name = user.optString("name"); | |
String id = user.optString("id"); | |
Log.e("email is", "" + user.optString("email")); | |
Log.e("link is", "" + user.optString("link")); | |
Log.d("response is", "" + user); | |
socialLogin(email, id, profilePicUrl, "facebook", name); | |
} catch (JSONException e) { | |
e.printStackTrace(); | |
} | |
// Toast.makeText(getActivity(), "link:" + (user.optString("picture")), Toast.LENGTH_LONG).show(); | |
// Toast.makeText(getActivity(), "link:" + (user), Toast.LENGTH_LONG).show(); | |
} | |
}); | |
Bundle bundle = new Bundle(); | |
bundle.putString("fields", "id,email,name,birthday,link,picture.type(large)"); | |
request.setParameters(bundle); | |
request.executeAsync(); | |
} | |
@Override | |
public void onStop() { | |
super.onStop(); | |
if (mProgressDialog != null) { | |
mProgressDialog.dismiss(); | |
} | |
} | |
private void showProgressDialog() { | |
if (mProgressDialog == null) { | |
mProgressDialog = new ProgressDialog(getActivity()); | |
mProgressDialog.setMessage(getString(R.string.loading)); | |
mProgressDialog.setIndeterminate(true); | |
} | |
mProgressDialog.show(); | |
} | |
private void hideProgressDialog() { | |
if (mProgressDialog != null && mProgressDialog.isShowing()) { | |
mProgressDialog.hide(); | |
} | |
} | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment