pictures picture page images for cool best facebook image profile

facebook - picture - images for whatsapp profile



Obtener la URL de imagen de perfil de Facebook "real" de la API de gráficos (12)

La API de gráficos de Facebook me dice que puedo obtener una foto de perfil de un usuario usando

http://graph.facebook.com/517267866/picture?type=large

que funciona bien Sin embargo, cuando escribe la URL anterior en un navegador, la dirección real de la imagen es

http://profile.ak.fbcdn.net/profile-ak-snc1/v227/560/83/n517267866_1928.jpg

¿Cómo puedo obtener la segunda URL usando la primera mediante programación?



Hmm ... intenté todo para obtener la URL de la imagen del usuario. La solución perfecta fue fql uso como este->

$fql_b = ''SELECT pic from user where uid = '' . $user_id; $ret_obj_b = $facebook->api(array( ''method'' => ''fql.query'', ''query'' => $fql_b, )); $dp_url =$ret_obj_b[0][''pic''];

reemplace pic por grande, pic_square para obtener otros resultados deseados. Espero que AYUDÓ ....


Me doy cuenta de que esto es tarde, pero hay otra forma de obtener la URL de la imagen del perfil.

A su url original, puede agregar el parámetro redirect=false para obtener la URL real de la imagen a la que normalmente se le redirigiría.

Por lo tanto, la nueva solicitud se vería como http://graph.facebook.com/517267866/picture?type=large&redirect=false . Esto devolverá un objeto JSON que contiene la URL de la imagen y una booleana is_silhouette (verdadera si la imagen es la imagen predeterminada de Facebook).

La imagen será del tamaño que especificó, también. Puede probar esto adicionalmente agregando dimensiones: http://graph.facebook.com/517267866/picture?type=large&redirect=false&width=400&height=400



este es el único que realmente funciona:

me?fields=picture.type(*YOURTYPE*)

donde YOURTYPE puede ser uno de los siguientes: small, normal, album, large, square



Para Android:

De acuerdo con el último SDK de Facebook,

En primer lugar, debe llamar a la GraphRequest API para obtener todos los detalles del usuario, en los que la API también proporciona la URL of current Profile Picture .

Bundle params = new Bundle(); params.putString("fields", "id,email,gender,cover,picture.type(large)"); new GraphRequest(token, "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"); } } catch (Exception e) { e.printStackTrace(); } } } }).executeAsync();


Para cualquier otra persona que busque obtener la foto de perfil en iOS:

Acabo de hacer esto para obtener la foto de Facebook del usuario:

NSString *profilePicURL = [NSString stringWithFormat:@"http://graph.facebook.com/%@/picture?type=large", fbUserID];

donde ''fbUserID'' es el ID de perfil del usuario de Facebook.

De esta manera siempre puedo llamar a la url en profilePicURL para obtener la imagen, y siempre la obtengo, no hay problema. Si ya tiene la ID de usuario, no necesita ninguna solicitud de API, solo inserte la ID en la url después de facebook.com/.

FYI a cualquiera que busque quién necesita el fbUserID en iOS:

if (FBSession.activeSession.isOpen) { [[FBRequest requestForMe] startWithCompletionHandler: ^(FBRequestConnection *connection, NSDictionary<FBGraphUser> *user, NSError *error) { if (!error) { self.userName = user.name; self.fbUserID = user.id; } }]; }

Necesitarás una FBSession activa para que funcione (consulta los documentos de Facebook y el ejemplo "Scrumptious").


La primera URL da un HTTP 302 (redirección temporal) a la segunda. Entonces, para encontrar la segunda URL programáticamente, podría emitir una solicitud HTTP para la primera URL y obtener el encabezado de Location de la respuesta.

Dicho esto, no confíe en que la segunda URL sea permanente. Leyendo un poco sobre el código de respuesta HTTP (de 302 frente a un 301 permanente), es posible que Facebook cambie esas URL de manera regular para evitar que las personas, por ejemplo, utilicen sus servidores para alojar imágenes.

Editar: Observe que la URL de CDN que OP publicó ahora es 404, por lo que sabemos que no podemos confiar en que la URL sea de larga duración. Además, si está enlazando a Graph API desde una <img> en una página segura de SSL, hay un parámetro que debe agregar, asegúrese de usar http s ://graph.facebook.com .

Actualización: la API ha agregado un parámetro - redirect=false - que hace que se devuelva JSON en lugar de redirigir. El JSON recuperado incluye la URL CDN:

{ "data": { "url": "http://profile.ak.fbcdn.net/...", "is_silhouette": false } }

Nuevamente, no confiaría en que esta URL de CDN sea duradera. La respuesta JSON se envía con encabezados permisibles CORS, por lo que puede hacer este lado del cliente con solicitudes XHR.


$url = ''http://graph.facebook.com/100000771470028/picture?type=large''; $rray=get_headers($url); $hd = $rray[4]; echo(substr($hd,strpos($hd,''http'')));

Esto devolverá la URL que solicitó, y el problema de cambiar la URL en Facebook no importa porque está llamando dinámicamente a la URL desde la URL original.


ImageView user_picture; userpicture=(ImageView)findViewById(R.id.userpicture); URL img_value = null; img_value = new URL("http://graph.facebook.com/"+id+"/picture?type=large"); Bitmap mIcon1 = BitmapFactory.decodeStream(img_value.openConnection().getInputStream()); userpicture.setImageBitmap(mIcon1);

Donde la ID es una identificación de su perfil .


function getFacebookImageFromURL($url) { $headers = get_headers($url, 1); if (isset($headers[''Location''])) { return $headers[''Location'']; } } $url = ''https://graph.facebook.com/zuck/picture?type=large''; $imageURL = getFacebookImageFromURL($url);