Necesito la dirección de correo electrónico del usuario después de un inicio de sesión con éxito en facebook en android con SDK 4.0
He integrado más reciente de Facebook android sdk 4.0. En SDK 3.0+, la dirección de correo electrónico del usuario se recupera utilizando user.getProperty ("correo electrónico") después del inicio de sesión correcto. Estoy buscando el comando correspondiente en Facebook Android sdk 4.0 Referencia Enlaces:
Https://developers.facebook.com/docs/facebook-login/android/v2.3#overview https://developers.facebook.com/docs/android/upgrading-4.x
- Se bloquea el SDK de Youtube al cargar vídeos en directo
- SDK de Android sigue instalando SDK instalados
- ¿Cómo compilar un proyecto de Android en un archivo .apk en Eclipse sin iniciar el emulador?
- ¿Qué son las herramientas de desarrollo de SDK de Android, las herramientas de plataforma y las herramientas? ¿Y qué versión debe utilizarse?
- ¿Qué sucede con eclipse, adt-plugin y android-sdk?
@Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); FacebookSdk.sdkInitialize(getActivity().getApplicationContext()); callbackManager = CallbackManager.Factory.create(); } @Override public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); loginButton = (LoginButton) view.findViewById(R.id.login_button); loginButton.setReadPermissions("email", "user_likes", "user_friends"); loginButton.setFragment(this); setFacebookLoginText(loginButton); // Other app specific specialization // Callback registration loginButton.registerCallback(callbackManager, new FacebookCallback<LoginResult>() { @Override public void onSuccess(LoginResult loginResult) { AccessToken accessToken = loginResult.getAccessToken(); GraphRequest request = GraphRequest.newMeRequest(accessToken, new GraphRequest.GraphJSONObjectCallback() { @Override public void onCompleted(JSONObject user, GraphResponse graphResponse) { //Need User email address after login success. } }).executeAsync(); } @Override public void onCancel() { Toast.makeText(getActivity(), "fail", Toast.LENGTH_SHORT).show(); } @Override public void onError(FacebookException exception) { Toast.makeText(getActivity(), "error", Toast.LENGTH_SHORT).show(); } }); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragment_facebook_login, container, false); return view; } @Override public void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); callbackManager.onActivityResult(requestCode, resultCode, data); }
- Integre MorphoSmart sdk en android
- Error # 200 Facebook SDK Android
- SDK de Android facebook como JAR
- Error de "ANDROID_BUILD_SDK_VERSION" con Facebook SDK
- Error al actualizar sdk
- Necesita un IDE para el desarrollo de Android NDK + SDK
- Desbloqueo de Android Facebook 4.0 mediante programación
- Truecaller android sdk Código de error 3
Sí funcionó. La única cosa requerida era cambiar GraphRequest a GraphRequestAsyncTask en el método onSuccess de FacebookCallBack, y entonces los detalles del usuario podrían ser fácilmente extraídos del JSONObject.
@Override public void onSuccess(LoginResult loginResult) { final AccessToken accessToken = loginResult.getAccessToken(); final FBUser fbUser = new FBUser(); GraphRequestAsyncTask request = GraphRequest.newMeRequest(accessToken, new GraphRequest.GraphJSONObjectCallback() { @Override public void onCompleted(JSONObject user, GraphResponse graphResponse) { fbUser.setEmail(user.optString("email")); fbUser.setName(user.optString("name")); fbUser.setId(user.optString("id")); } }).executeAsync(); }
En el nuevo gráfico de facebook necesitas pedir permisos para acceder a esa información. Por ejemplo en la actividad que usted ha puesto el LoginButton usted agrega esta línea en el método de OnCreate
loginButtonFacebook.setReadPermissions(Arrays.asList("public_profile", "email", "user_birthday"));
Entonces usted consigue esa información
loginButtonFacebook.registerCallback(callbackManager, new FacebookCallback<LoginResult>() { @Override public void onSuccess(LoginResult loginResult) { GraphRequest.newMeRequest( loginResult.getAccessToken(), new GraphRequest.GraphJSONObjectCallback() { @Override public void onCompleted(JSONObject me, GraphResponse response) { if (response.getError() != null) { // handle error } else { String email = me.optString("email"); } } }).executeAsync(); }
Esto le dará toda la información de facebook sdk 4.0.0
FbloginButton.setReadPermissions ("correo electrónico");
fbloginButton.registerCallback(callbackmanager, new FacebookCallback<LoginResult>() { @Override public void onSuccess(LoginResult loginResult) { AccessToken accessToken = loginResult.getAccessToken(); GraphRequest graphRequest=GraphRequest.newMeRequest(accessToken, new GraphRequest.GraphJSONObjectCallback() { @Override public void onCompleted(JSONObject object, GraphResponse response) { if (response.getError()!=null) { Log.e(TAG,"Error in Response "+ response); } else { email=object.optString("email"); Log.e(TAG,"Json Object Data "+object+" Email id "+ email); } } }); Bundle bundle=new Bundle(); bundle.putString("fields","id,email,name"); graphRequest.setParameters(bundle); graphRequest.executeAsync(); }
Aparte de eso, pruebe si tiene permiso, de lo contrario pida a sus usuarios de nuevo:
AccessToken accessToken=AccessToken.getCurrentAccessToken(); if (accessToken.getPermissions().contains("email")) { } else { }
- Android- simple fade out y fade in animación para viewflipper
- Android found tag … donde se espera el artículo