2012-05-04 17 views
5

Estoy intentando ubicar la ubicación actual de todos los amigos de un usuario en Facebook, y me encuentro con un problema curioso en el que algunos de esos amigos están leyendo NULL cuando puedo ver en sus páginas de Facebook reales que dice "Vidas en ,." La parte difícil de este error es que solo ocurre probablemente en ~ 30% de los casos. En los casos restantes, extrae toda la información correcta, lo que me dice que los permisos probablemente estén configurados correctamente.FB Graph/FQL: Current_location of friends a veces está leyendo Null cuando la página FB muestra una ubicación

Para ser más específicos, el código FQL que estoy usando es:

SELECT uid, 
     name, 
     current_location 
FROM USER 
WHERE uid IN (SELECT uid2 
       FROM friend 
       WHERE uid1 = Me()) 

Este mismo problema ha surgido cuando hace peticiones javascript directamente a la gráfica, por lo que no parece ser un problema FQL tampoco. ¿Alguien sabe por qué current_location podría a veces fallar e informar NULL, pero no siempre?

Gracias.

Respuesta

0

Hay 2 posibilidades; Los amigos del usuario que tienen CURRENT_LOCATION nulo:

1) no especificó su ubicación actual en su perfil de facebook

2) Se especifican la ubicación actual en su perfil de facebook, pero su configuración de privacidad niega que verlo

+0

Son cualquiera de esas situaciones posibles si puedo ver su ubicación actual cuando Voy a su página de Facebook real? Enumera en su sección de información "Vidas en ..." y, sin embargo, el gráfico API informa NULL en current_location. ¿Hay dos permisos separados para ver la ubicación actual en el perfil, pero no a través de la API gráfica? –

+0

Hay algo más que eso. En ocasiones, una aplicación tiene los permisos adecuados y el usuario puede verla, pero la aplicación no. – Leopd

2

configuración de privacidad tiene una prioridad más alta que facebook de la API.

Si el usuario ha restringido la información particular de la configuración de privacidad, no podrá buscarla por Facebook api (gráfico, fql, api de descanso) incluso si el usuario otorga permiso para eso.

p. Ej.

Si me he limitado a compartir mi cumpleaños en la configuración de privacidad, ninguna aplicación podrá obtener mi cumpleaños, incluso si lo solicitan.

Además, el usuario puede restringir aplicaciones para obtener información particular.

p. Ej. El usuario puede permitir que la aplicación xyz acceda a todo lo que desee, pero al mismo tiempo el usuario puede restringir la aplicación xyz para acceder a su ubicación

Espero que responda a su pregunta.

+0

Sí, los usuarios de FB pueden restringir qué usuarios pueden ver qué información. Pero esto no explica por qué un usuario que puede ver información en facebook.com no puede ver esa misma información a través de una aplicación que tiene los permisos adecuados. – Leopd

+1

De hecho, me encontré con la respuesta al explorar la configuración de privacidad. Parece que Facebook tiene configuraciones de privacidad separadas para los usuarios y para las aplicaciones. En particular, la clave está en: Configuraciones de privacidad -> Anuncios, aplicaciones y sitios web -> Cómo la gente trae su información a las aplicaciones que usan. Creo que esto podría cambiar a no compartir, lo que presentaría un problema bastante grande para cualquiera que quiera acceder a la información de sus amigos en una aplicación. –

+0

Yeap, como dije en mi último punto, los usuarios pueden restringir aplicaciones para obtener una información particular. Entonces, un usuario puede ver su información en facebok pero no en una aplicación. Además, el usuario podría haber compartido información solo con usuarios específicos y no con todos los usuarios – Jashwant

0

Tengo el mismo problema.

He comprobado dos usuarios diferentes que son amigos míos.

En ambos casos FQL consulta como:

select uid, first_name, name, birthday, birthday_date, current_address, current_location, hometown_location, sex from user where uid in (select uid2 from friend where uid1 = me() 

vuelve null para home_location.

Comprobé que ambas cuentas y la ubicación de mi casa estaban disponibles para todos (tanto la privacidad como la configuración de privacidad de la aplicación).

Mi token de acceso incluye todos los permisos necesarios (la ubicación de inicio se mostró para otros amigos).

Luego ejecutar la consola con FQL consulta:

select uid, first_name, name, birthday, birthday_date, current_address, current_location, hometown_location, sex from user where uid = nnnn 

como propietario y los resultados fueron los siguientes:

  • propietario llegó a casa ubicación.
  • En mi antigua pestaña del navegador FQL Console, todavía no hay una ubicación de inicio.
  • En mi nueva pestaña del navegador de la consola FQL, obtuve la ubicación de inicio.

Después de un tiempo llegué a la ubicación de inicio en la antigua consola FQL.

Pero los viejos consultas todavía no regresaron a casa ... ubicación

que parece ser algún problema de almacenamiento en caché en el lado FB.

0

Mismo problema aquí. Puedo recuperar current_location o hometown_location para NINGUNO de mis amigos. Para la mayoría de ellos, puedo verlo fácilmente visitando su perfil. Los permisos de aplicaciones ubicación_migos y ciudad_amigos están configurados.

0

Intentar esta consulta para obtener la ubicación actual de sus amigos

SELECT first_name,uid, last_name, current_location.name 
FROM user 
WHERE uid IN (SELECT uid2 FROM friend WHERE uid1 = me()) AND current_location 

También u necesitará friends_location permiso para ejecutar esta consulta

Cuestiones relacionadas