2011-01-07 14 views
5

trato a buscar las alimentaciones de usuario a través de la API gráfica de mi aplicación para Android. Por lo general funciona, pero algunas alimentaciones que puedo ver en la pared faltan en la respuesta json.Facebook API gráfica: Alimentos que faltan en respuesta JSON

Llamo a la url http://graph.facebook.com/someUserId/feed, utilizando los métodos de Android SDK de Facebook, por lo que el token de acceso debe proporcionarse automáticamente, pero no es realmente relevante, creo que en mi caso. Sin embargo, fyi, el usuario de mi aplicación está autenticado a través de OAuth.

ya que controlarán los siguientes:

  • todos los feeds de los usuarios son visibles para todos/pública (ajustado en la configuración de privacidad)
  • la respuesta JSON no se almacena en caché por el navegador
  • Soy consciente de paginación, pero esto no es un problema. El problema no es que no obtenga los feeds más antiguos, sino que algunos feeds solo faltan entre.
  • Me he registrado un nuevo usuario de Facebook que no está conectado al usuario que desea recuperar la pared se alimenta de, y al abrir la pared respectiva veo todos los alimentos allí, como era de esperar, ya que son todos los públicos a todo el mundo . Sin embargo, cuando abro el mismo json url relacionado con http://graph.facebook.com/someUserId/feed, faltan algunos feeds.

Este es un ejemplo del problema - ya que todos mis mensajes son públicos, sólo puede llamar a la url JSON directamente en un navegador para hacer una prueba.

quiero conseguir pared se alimenta de usuario: http://www.facebook.com/mathias.lin

screenshot1: tenga en cuenta las 3 ofertas marcados, todos publicados por mí mismo

alt text

y aquí la respuesta JSON, como se puede ver , los mensajes de pared primero y tercero están incluidos en el json, pero el segundo puesto no. ¿Por qué?

La url JSON relacionada es: http://graph.facebook.com/mathias.lin/feed

alt text

estoy recibiendo la alimentación 'faltantes' cuando agrego un señal_acceso a la url - pero ¿por qué? ¿El feed publicado tiene una configuración de privacidad para "todos"?

Ésta es la falta de alimentación que consigo cuando se utiliza el señal_acceso:

{"id":"504063796_485195138796","from":{"name":"Mathias Lin","id":"504063796"},"message":"Photo test upload from Android","picture":"http:\/\/photos-e.ak.fbcdn.net\/hphotos-ak-snc6\/hs021.snc6\/165194_485195123796_504063796_6062399_1841907_s.jpg","link":"http:\/\/www.facebook.com\/photo.php?fbid=485195123796&set=a.485195118796.256450.504063796","name":"Torres Photos","icon":"http:\/\/static.ak.fbcdn.net\/rsrc.php\/yz\/r\/StEh3RhPvjk.gif","actions":[{"name":"Comment","link":"http:\/\/www.facebook.com\/504063796\/posts\/485195138796"},{"name":"Like","link":"http:\/\/www.facebook.com\/504063796\/posts\/485195138796"}],"privacy":{"description":"Everyone","value":"EVERYONE"},"type":"photo","created_time":"2011-01-06T05:10:43+0000","updated_time":"2011-01-06T09:00:23+0000","likes":6,"comments":{"data":[{"id":"504063796_485195138796_3607414","from":{"name":"Mathias Lin","id":"504063796"},"message":"Awesome, photo upload now works as well. Not so much fun working with the Facebook SDK for Android, would have expected more functionality beyond that just very very simple graph api wrapper. But need to be considered that the android sdk development was part of an internship - but since it's it's open source, it can luckily be modified. Which has to be done due to some bugs (mixing up the bundle parameters for a post, getString, getByteArray). Api documentation could be improved.","created_time":"2011-01-06T05:26:04+0000"},{"id":"504063796_485195138796_3608020","from":{"name":"Renate Hermanns","id":"628810487"},"message":"Wow 
, how fast time passes by. Your daughter is nearly grown up ;-).","created_time":"2011-01-06T09:00:23+0000"}],"count":2},"attribution":"Torres"} 

Ya hemos publicado la pregunta en el foro FB dev, a la espera de respuesta.

hilos relacionados:

http://forum.developers.facebook.net/viewtopic.php?id=81365

http://forum.developers.facebook.net/viewtopic.php?id=75984

Facebook Graph API "/userid/feed" returning Blank

+1

Creo que es posible que esta respuesta es útil - http://stackoverflow.com/questions/4617606/facebook-graph-api- does-not-return-all-feed-items-on-facebook-page/4622608 # 4622608. Es prácticamente la misma pregunta. – Bartek

+0

¡Gracias por el enlace! De hecho, es interesante, aunque mi caso es ligeramente diferente, porque todas las publicaciones incl. el que falta es todo de mí y en mi propia pared. No veo qué hace que la publicación 'perdida' sea diferente de las demás. Afaik en caso de que hayas enlazado, se muestran todas las publicaciones propias de realplayer, todas las publicaciones extranjeras están ocultas. Pero en mi caso, incluso mi propia publicación no se muestra sin access_token. –

+0

Ah, mi mal, lo siento, no me di cuenta de que la publicación que faltaba también fue creada por usted. Extraño, de hecho. En otra nota, eché un vistazo a tu muro y lo que noté es que la foto no es realmente una publicación, cuando haces clic en la hora debajo de cada publicación puedes encontrar su ID, mientras que el enlace debajo de la foto te lleva directamente al álbum. Después de analizar algunas paredes, me parece que solo las fotos están causando el problema. – Bartek

Respuesta

4

Su enfoque es correcto, he visto el JSON y sí que le falta el segundo, creo que es la aplicación de subida form adroid, intente verificar la configuración de la aplicación para esta aplicación. O Si su tratando de recuperar el FQL pared es una manera mucho mejor

SELECT post_id, actor_id, target_id, message FROM stream WHERE source_id in (SELECT target_id FROM connection WHERE source_id=<uid> AND is_following=1) AND is_hidden = 0 
+0

Sí, la publicación se realizó a través de mi aplicación Android, pero no estoy seguro, ¿qué configuración de la aplicación debo verificar? No encontré nada con respecto a la configuración de privacidad o si incluyo/excluyo los feeds que se han publicado a través de mi aplicación. Bien, también investigaré FQL, desafortunadamente esto necesita alguna implementación personalizada, una vez más, ya que el Android SDK de Facebook usa la API regular de forma predeterminada. –

+0

btw: y el álbum donde se publica la foto (creado automáticamente por la API de FB) está configurado como privacidad = Todos –

+1

Con FQL obtengo los feeds que se perdieron por la API regular de gráficos. Gracias por la pista. –

0

He pasado por esto, la forma en que Facebook está categorizando sus permisos de alguna manera es engañosa, por ejemplo, puede Publicly available sonidos como Available to everyone on Facebook pero apperantly no es.

En su caso, si ya ha autenticado el usuario, a continuación, trate de usar:

/me/feed 

supongo que este es el único caso en el que access_token no es necesario en la URL.

+0

/me/feed devolvería solo mis propias publicaciones, quiero usar cualquier userId/feed. Lo que no entiendo del todo es que algunos feeds se devuelven y otros no cuando no uso access_token, aunque todos ellos tienen la misma configuración de privacidad. Pero yo/feed no es el único caso en el que no necesita un token de acceso; solo intente abrir http://graph.facebook.com/mathias.lin/feed en un navegador; obtendrá mis feeds (con algunos desaparecidos, por razones desconocidas), ¿verdad? –

+0

no, lo que estoy diciendo ... es si sigues el proceso de autenticación y tienes una sesión válida ... ¿'/ me/feed' devolverá todos los feeds? Supongo que debería, esta es la razón por la que * supongo * '/ user_id/feed? Access_token = xxx' ='/me/feed' – ifaour

+0

y por * no es necesario * Quise obtener acceso completo sin está presente en la URL .. – ifaour

0

Tuve un problema similar. Pero para mí, el problema estaba relacionado con no configurar el alcance correctamente en el primer inicio de sesión (para autorizar la aplicación). He publicado una pregunta similar y obtuve una respuesta que trabajó para mí aquí:

Facebook API how to get all wall items