2011-05-30 17 views
18

estoy recibiendo una imagen de facebook mediante la URL: http://external.ak.fbcdn.net/safe_image.php?d=d282e1e7c86c9270232f97ddc737df39&w=90&h=90&url=http%3A%2F%2Fi52.tinypic.com%2F2q0ixzl.jpgcómo obtener el perfil grande imagen de una página de facebook

Ahora, quiero una versión más grande, como 200 por 200. ¿Existe una URL para que? Si no, ¿cómo puedo convertir esta imagen a un tamaño más grande?

+0

¿Es esta una foto de perfil? –

+0

sí, es .......... – PJR

+0

simplemente estableciendo el ancho y alto de la imagen –

Respuesta

52

En general, si se quiere recoger la foto de perfil de un usuario o una página, el formato de la imagen tamaño del icono es:

http://graph.facebook.com/[page id/profile id]/picture 

y para el cuadro grande:

http://graph.facebook.com/[page id/profile id]/picture?type=large 

EDITAR Puntos a tener en cuenta: Si la imagen almacenada en los servidores de Facebook tiene menos de 200 * 200 dimensiones, obtendrá la imagen como la resolución más alta disponible, por ejemplo: 128 * 160. O puede cambiar el tamaño utilizando la biblioteca de GD.

Y una cosa más

Facebook soporta 200 * 600px como la más alta resolución para la foto de perfil. Cambiará el tamaño de una imagen para que se ajuste a estas dimensiones manteniendo la relación de aspecto.

* ACTUALIZACIÓN como el 19 de Feb, 2017 *

Tenemos que utilizar esta nueva formación URL para obtener una imagen del perfil deseado.

http://graph.facebook.com/{profile_id}/picture?width={number‌​}&height={number} 

[Gracias https://stackoverflow.com/users/2829128/vay]

+0

@PJR - ¿Podría marcar la respuesta como correcta para facilitando que otros puedan obtener ayuda de esta pregunta en el futuro. Gracias. –

+0

¿Hay alguna otra manera de obtener una imagen más grande que 200 * 600 ?. –

+0

Muchas gracias es muy útil Estaba buscando esta solución muchas gracias – Muhammed

23

Si desea obtener una imagen más grande sólo puede ajustar la altura y el ancho que desea de esta manera:

http://graph.facebook.com/[page id/profile id]/picture?width=[number]&height=[number] 

Más información y ejemplos aquí: Pictures - Facebook Developers

+2

esta debería ser la respuesta, yo. – silent

+1

gracias, funciona para mí –

+0

¡Debería ser la respuesta aceptada! Gracias. – AlexioVay

0

SÍ, hay una manera de obtener la imagen de perfil original (la mayor parte del tiempo más grande) de una página de Facebook.

En realidad, la respuesta ya está en la pregunta. La url de la imagen original ya está incrustada en la url save_image. En su caso se trata de "url = http% 3A% 2F% 2Fi52.tinypic.com% 2F2q0ixzl.jpg”, que significa "http://i52.tinypic.com/2q0ixzl.jpg"

En mi caso, la página de Londres es

https://www.facebook.com/pages/London-United-Kingdom/106078429431815?fref=ts 

I puede fácilmente obtener su ID de objeto fb de búsqueda por palabra clave Londres. he intentado utilizar el parámetro anchura y altura. trabajan con imagen de perfil de usuario o una imagen compartida del usuario pero no pueden trabajar con las páginas públicas foto de perfil.

https://graph.facebook.com/106078429431815/picture?width=300&height=300 // can’t work 

La imagen más grande que puedo obtener siguiendo url whic h es solo 180x77

https://graph.facebook.com/106078429431815/picture?type=large 

Pero puedo obtener safe_image.php url mediante el uso de API gráfica fb, y el URL de la imagen original es también dentro de la sección url los parámetros

"url": "https://fbexternal-a.akamaihd.net/safe_image.php?d=AQCrtKykRotXBuaS&w=180&h=540&url=http%3A%2F%2Fupload.wikimedia.org%2Fwikipedia%2Fcommons%2Fthumb%2Farchive%2F2%2F21%2F20141005220235%2521City_of_London_skyline_at_dusk.jpg%2F720px-City_of_London_skyline_at_dusk.jpg&fallback=hub_city&prefix=d" 

Aquí es código que he usado.

[FBRequestConnection startWithGraphPath:[NSString stringWithFormat:@"/%@/picture?redirect=false&type=large",[firstCityPage objectForKey:@"id"]] 
        completionHandler:^(
             FBRequestConnection *connection, 
             id result, 
             NSError *error 
             ) { 

         NSString *profileImgUrl = [NSString stringWithFormat:@"http://graph.facebook.com/%@/picture?type=large", [firstCityPage objectForKey:@"id"]]; 

         if (error==nil) { 
          NSString *fbSaveImgUrl = [[(NSDictionary*)result objectForKey:@"data"] objectForKey:@"url"]; 

          NSURLComponents *urlComponents = [NSURLComponents componentsWithURL:[NSURL URLWithString:fbSaveImgUrl] 
                     resolvingAgainstBaseURL:NO]; 

          for (NSURLQueryItem *queryItem in urlComponents.queryItems) { 
           if ([queryItem.name isEqualToString:@"url"]) { 
            profileImgUrl = queryItem.value; 
            break; 
           } 
          } 

         } else { 
          NSLog(@"%@",[error description]); 
         } 

         NSLog(@"url: %@", profileImgUrl); 

         ... 
        }]; 

PERO, existen riesgos.

  1. No hay garantía de que la URL de la externa de la imagen será válida.

  2. Facebook puede eliminar la URL externa explícita en la url de safe_image u ocultar la url de safe_image del desarrollador en el futuro.

Úselo bajo su propio riesgo.

6

esto también funcionará

picture.type (grande)

ejemplo

if ([FBSDKAccessToken currentAccessToken]) { 
    [[[FBSDKGraphRequest alloc] initWithGraphPath:@"me" parameters:@{@"fields": @"picture.type(large),name, email"}] 
    startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection, id result, NSError *error) { 
     if (!error) { 
      NSLog(@"fetched user:%@", result); 
      NSMutableDictionary *data=[[NSMutableDictionary alloc]init]; 
      data=result; 


      fbId.text=[data valueForKey:@"id"]; 
      userName.text=[data valueForKey:@"name"]; 
      _emailFB.text=[data valueForKey:@"email"]; 



      NSDictionary *dictionary = (NSDictionary *)result; 

      NSDictionary *data3 = [dictionary objectForKey:@"picture"]; 
      NSDictionary *data2 = [data3 objectForKey:@"data"]; 
      NSString *photoUrl = (NSString *)[data2 objectForKey:@"url"]; 

      NSLog(@"Photo : %@",photoUrl); 


     } 
    }]; 
} 

}

Cuestiones relacionadas