2011-08-11 17 views
6

En mi aplicación, la mayoría de las publicaciones públicas parecen devolver 'falso' cuando se accede a través de Graph API.Facebook Graph API devuelve 'falso' aunque la publicación es pública

Ejemplo: https://graph.facebook.com/1543370206_2215254431220?access_token=XXXX

Ese mensaje es visible públicamente, sin embargo, la consulta de la anterior siempre devuelve falso.

Según las preguntas similares en StackOverflow, he intentado utilizar un token de acceso a la aplicación y varios tokens de acceso de usuario de oAuth 2.0 diferentes con acceso_fuera, pero sin éxito.

También intenté acceder utilizando el formato de identificación profileid_postid (como el anterior) y el formato postid (https://graph.facebook.com/2215254431220?access_token=XXXX), pero no tuve suerte.

También me he vuelto a intentar después de 24 horas, solo para asegurarme de no exceder los límites de la API.

He probado más de 1,000 publicaciones públicas (sé que son públicas porque las obtuve de Graph API usando el método de búsqueda, pero también he hecho algunas muestras aleatorias en un navegador para estar seguro). El 75% devolvió el valor falso (independientemente de si utilicé un token de acceso a la aplicación o un token de acceso del usuario).

+0

Agregue un enlace al comentario en Facebook. –

+0

http://www.facebook.com/permalink.php?story_fbid=2215254431220&id=1543370206 – pricj004

Respuesta

9

Creo que lo he resuelto.

Las publicaciones que devolvían false no son 'públicas' como tales. Parecen visibles para cualquier usuario de Facebook, independientemente de si son amigos del autor. Sin embargo, si no está conectado a Facebook, no puede verlos.

Las publicaciones que tuvieron éxito fueron verdaderamente públicas. La mayoría de ellos pertenecían a empresas, etc. y se podía ver si había iniciado sesión en Facebook o no.

Supongo que Graph API hace una distinción entre estos dos tipos de visibilidades, p. 'Todos en Facebook' y 'Todos en Internet'. Eché un vistazo a mi configuración de privacidad y no puedo entender cómo se ha hecho esto.

Sin embargo, esto no está bien documentado en los documentos Graph API. Tampoco devolver 'falso' es una forma elegante de manejar este error. Tampoco es consistente permitirme ver la publicación a través de la búsqueda, pero no consultar el objeto directamente.

+0

¿Determinó qué hacer para obtener estas publicaciones? – Stuart

+0

Que yo sepa, no se puede hacer.Todavía puedes verlos usando un navegador, así que supongo que podrías filtrar el raspado, pero va en contra de los TyC. – pricj004

0

Debería considerar la posibilidad de presentar un informe de error con Facebook. Para agregar al problema, me he dado cuenta de que estas publicaciones públicas solo devuelven falso si son publicaciones de un objeto de usuario. Las publicaciones por objetos de página funcionan como se esperaba. No está haciendo nada mal, ya que esto está sucediendo en Facebook's Graph API Explorer (este es el ejemplo que Facebook proporciona en su documento API para consultar publicaciones públicas).

1

Sé que esta pregunta tiene más de un año de antigüedad, pero Graph devolverá el objeto correcto si utiliza un token de acceso a la página.

Obtiene ésos pidiendo al usuario permiso MANAGE_PAGES, y luego buscando la conexión/Cuenta en el usuario. Cada entrada en la conexión contendrá un pageid y un token de acceso específico de la página: este token le permitirá recuperar todos los objetos de la página del gráfico. Si usa el token de su aplicación o el token de los propios usuarios, devolverá false.

Cuestiones relacionadas