Cómo obtener la imagen de perfil de Facebook en Android

Estoy usando Facebook sdk 4.4.0 en android y quiero obtener la imagen de perfil actual del usuario utilizando la solicitud de gráfico. ¿Como hacer eso?

He visto que la gente usa

Https://graph.facebook.com/me/picture?access_token=ACCESS_TOKEN

API para extraer la imagen de perfil, pero no puedo imaginar cómo extraer la imagen de perfil de ella.

8 Solutions collect form web for “Cómo obtener la imagen de perfil de Facebook en Android”

Primero tiene que llamar a GraphRequest API para obtener todos los detalles del usuario en el que API también da URL de la imagen de perfil actual.

Bundle params = new Bundle(); params.putString("fields", "id,email,gender,cover,picture.type(large)"); new GraphRequest(AccessToken.getCurrentAccessToken(), "me", params, HttpMethod.GET, new GraphRequest.Callback() { @Override public void onCompleted(GraphResponse response) { if (response != null) { try { JSONObject data = response.getJSONObject(); if (data.has("picture")) { String profilePicUrl = data.getJSONObject("picture").getJSONObject("data").getString("url"); Bitmap profilePic= BitmapFactory.decodeStream(profilePicUrl .openConnection().getInputStream()); mImageView.setBitmap(profilePic); } } catch (Exception e) { e.printStackTrace(); } } } }).executeAsync(); 

Desde la última sdk 4.5.0

  String url; Bundle parametersPicture = new Bundle(); parametersPicture.putString("fields", "picture.width(150).height(150)"); GraphResponse lResponsePicture = new GraphRequest(AccessToken.getCurrentAccessToken(), "/me/", parametersPicture, null).executeAndWait(); if (lResponsePicture != null && lResponsePicture.getError() == null && lResponsePicture.getJSONObject() != null) { url = lResponsePicture.getJSONObject().getJSONObject("picture") .getJSONObject("data").getString("url"); } 

Usted puede tener esto de 2 manera diferente.

Way1: Integre el soporte gráfico api https://developers.facebook.com/docs/graph-api/reference/user/picture/

Way2: A través de la llamada http: // graph.facebook.com/{facebook-Id}/picture?width=x&height=y

Donde x e y podrían ser cualquier número entero por ejemplo 100

Llámalo

 graph.facebook.com/<FB UserId>/picture?type=large 

Protected void rajendra (LoginButton login_button) {

  login_button.registerCallback(callbackManager, new FacebookCallback<LoginResult>() { @Override public void onSuccess(LoginResult login_result) { GraphRequest request = GraphRequest.newMeRequest( login_result.getAccessToken(), new GraphRequest.GraphJSONObjectCallback() { @Override public void onCompleted( JSONObject object, GraphResponse response) { response.getError(); try { if (android.os.Build.VERSION.SDK_INT > 9) { StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build(); StrictMode.setThreadPolicy(policy); String profilePicUrl = object.getJSONObject("picture").getJSONObject("data").getString("url"); URL fb_url = new URL(profilePicUrl);//small | noraml | large HttpsURLConnection conn1 = (HttpsURLConnection) fb_url.openConnection(); HttpsURLConnection.setFollowRedirects(true); conn1.setInstanceFollowRedirects(true); Bitmap fb_img = BitmapFactory.decodeStream(conn1.getInputStream()); image.setImageBitmap(fb_img); } }catch (Exception ex) { ex.printStackTrace(); } } }); Bundle parameters = new Bundle(); parameters.putString("fields", "id,picture"); request.setParameters(parameters); request.executeAsync(); } 

Si quieres una imagen realmente grande tendrías que especificar. Al menos un tamaño de imagen – por ejemplo.

 String profileImg = "https://graph.facebook.com/" + loginResult.getAccessToken().getUserId() + "/picture?type=large&width=1080"; 

Además, puede especificar ambos tamaños (add & height = some_val), pero entonces facebook recortará esta imagen de perfil.

 try { String fbId="970463683015249"; URL fb_url = new URL("http://graph.facebook.com/"+fbId+"/picture?type=small");//small | noraml | large HttpsURLConnection conn1 = (HttpsURLConnection) fb_url.openConnection(); HttpsURLConnection.setFollowRedirects(true); conn1.setInstanceFollowRedirects(true); Bitmap fb_img = BitmapFactory.decodeStream(conn1.getInputStream()); }catch (Exception ex) { ex.printStackTrace(); } 

Simplemente llame a esta URL:

 graph.facebook.com/<facebook_user_id>/picture?type=large 

Tipo puede ser grande, normal o pequeño.

Otra forma es utilizar ProfilePictureView

 <com.facebook.login.widget.ProfilePictureView android:id="@+id/image" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerInParent="true" facebook:preset_size="small"/> 

Después de que usted puede configurar facebook id como esto en el código

 profilePictureView.setProfileId(facebookUserId); 
  • ¿Cómo recuperar imágenes de perfil de Whatsapp?
  • ¿Cómo obtener el seguimiento de los métodos llamados por la aplicación de Android en el inicio de la actividad principal, sin que el código fuente de la aplicación esté disponible?
  • Reaccionar la creación de perfiles nativos. Systrace no muestra JS y Native Modules Thread
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.