¿Hay alguna manera de saber si un usuario subió una imagen al perfil o si tiene la imagen de usuario predeterminada de Facebook a través del FQL o algo más?¿Cómo determinar si un usuario de Facebook ha subido una foto de perfil o su valor predeterminado?
¿Cómo determinar si un usuario de Facebook ha subido una foto de perfil o su valor predeterminado?
Respuesta
Puede utilizar la secuencia de comandos de Python a continuación (como no se menciona ningún lenguaje de programación) para que funcione.
urllib.urlopen('https://graph.facebook.com/<PROFILE_ID>/picture?access_token=%s' % access_token).geturl()
Esto le proporcionará una URL foto de perfil de Facebook. Si esa URL contiene < PROFILE_ID>, carga una imagen. De lo contrario, se carga la imagen predeterminada de Facebook.
Por ejemplo, si la imagen subido:
http://profile.ak.fbcdn.net/hprofile-ak-snc4/195361_<PROFILE_ID>_4179703_q.jpg
otra cosa:
: Hombre:
http://b.static.ak.fbcdn.net/rsrc.php/v1/yo/r/UlIqmHJn-SK.gif
para la hembra:
https://fbcdn-profile-a.akamaihd.net/static-ak/rsrc.php/v1/y9/r/IB7NOFmPw2a.gif
espero que esto ayude.
Según mis experimentos con la API de Facebook, parece que uno tiene que obtener realmente la imagen para saber si es una predeterminada estática o no.
En el momento de la redacción, parece que todas las fotos cargadas en Facebook se convierten a JPEG, mientras que las imágenes estáticas predeterminadas están en el formato GIF. (Por cierto, esto no es consistente con algunos tamaños de miniaturas).
Buscar un archivo GIF específico o una ruta URL específica no es confiable (tenga en cuenta que hay URL CDN implicadas, y que hay diferentes archivos estáticos para hombre y mujer). Suponiendo que Facebook no vuelva a codificar toda la base de datos de fotos de perfiles, supongo que buscar un GIF es lo suficientemente confiable.
Aquí hay una función PHP de ejemplo para hacer esto. Lo probé con éxito con mis 120 amigos de Facebook, y parece hacer el trabajo.
public static function hasProfilePicture($fbuid)
{
/* Really stupid method to test if Facebook user has real profile picture
* based on Facebook returning a GIF image when you request a large photo.
* Use with care - for every profile there's an outgoing request! */
$r = get_headers("http://graph.facebook.com/$fbuid/picture?type=square");
return !array_search("Content-Type: image/gif",$r);
}
Si un usuario no tiene una foto entonces el campo is_silhouette será cierto cuando se solicita el objeto de usuario con el campo "foto" especificado.
Ejemplo solicitud:
https://graph.facebook.com/username?fields=picture
Respuesta:
{
"id": "100002095576350",
"picture": {
"data": {
"url": "http://profile.ak.fbcdn.net/static-ak/rsrc.php/v2/yo/r/UlIqmHJn-SK.gif",
"is_silhouette": true
}
}
}
rápida, sucio función de PHP:
function facebook_user_has_photo($username_or_id){
$request = file_get_contents('https://graph.facebook.com/'.$username_or_id.'?fields=picture');
if($request):
$user = json_decode($request);
if($user && !$user->picture->data->is_silhouette) return true;
endif;
return false;
}
- 1. Obtener foto de perfil de usuario por Id
- 2. ¿Cómo almacenar una imagen como una foto de perfil de un usuario?
- 3. ¿Cómo comprobar si el usuario ha subido un archivo en PHP?
- 4. ¿Cómo saber si una imagen se ha subido o no? - Paperclip
- 5. Gravatar: cómo sé si un usuario tiene una imagen real
- 6. Obtener foto de perfil de una página
- 7. Verifique si un objeto dado (referencia o tipo de valor) es igual a su valor predeterminado
- 8. ¿Cómo se permite al usuario elegir una foto de su cámara o biblioteca de fotos?
- 9. El método de formulario predeterminado IE7 es "GET". ¿Cómo puedo saber si el usuario ha ingresado o está predeterminado?
- 10. ¿Cómo puedo determinar si un usuario ha presionado en una UITableViewCell durante 2 segundos?
- 11. ¿Cómo puedo determinar si una imagen ha sido retocada?
- 12. ¿Cómo puedo determinar si un hilo de Win32 ha finalizado?
- 13. ¿Cómo determinar si T es un tipo de valor o una clase de referencia en genérico?
- 14. ¿Cómo sé si el perfil del usuario que ejecuta una aplicación es un perfil temporal?
- 15. ¿Cómo restauro una hoja de propiedades a su valor predeterminado?
- 16. Establecer una enumeración en su valor predeterminado
- 17. ¿Cómo saber si el usuario ha actualizado la aplicación o ha instalado una copia nueva?
- 18. Determinar si el usuario ha iniciado una acción de JavaScript determinada
- 19. Determinar si se ha producido un cambio de día
- 20. ¿La mejor manera de determinar si un UIViewController se ha cargado y tiene una vista válida?
- 21. C# - Cómo probar si una instancia es el valor predeterminado para su tipo
- 22. ¿Cómo determinar si una clave es una letra o número?
- 23. Cómo detectar si un usuario ha cerrado sesión, en php?
- 24. Cómo determinar si mdworker (Spotlight) ha completado el primer escaneo
- 25. Cómo determinar si el valor es una fecha en PHP
- 26. ¿Cómo comprobar si un usuario ha otorgado un cierto conjunto de permisos a mi aplicación PHP?
- 27. ¿Cómo puedo determinar si el usuario o el navegador han ingresado datos en un formulario?
- 28. ¿Cómo obtener el valor de estilo en cascada o determinar si se calculó el valor real?
- 29. ¿Cómo determinar si un parámetro ha sido "publicado" o "generado" desde Java?
- 30. ¿Cómo verificar si un usuario ha calificado su aplicación en Google Play?
Para los desarrolladores de PHP, puede utilizar:? ' Php print_r (get_headers ("https://graph.facebook.com//picture? access_token = ". $ access_token)); ?> ' Y encuentre la ubicación en el encabezado :) –
Para hombres y mujeres hay diferentes imágenes. Así que averigüe cómo ubicaciones para hombre/mujer. También es posible verificar los archivos por suma de comprobación. –
Actualicé la publicación. Espero que te ayude ...:) –