php - que - El gráfico de Facebook pregunta cómo obtener la información del usuario, sin publicaciones sobre Me gusta y comentarios del usuario.
que es graph api (3)
Todos los datos json que obtienes de la API Graph cuando solicitas feed a los usuarios, tienen un elemento ''type'' que puede ser, por ejemplo, Link, comment, status .... Elige los que necesites.
Estoy desarrollando una aplicación de fb, en la cual quiero darles a los usuarios una línea de tiempo, pero necesito excluir historias como "El usuario le gusta una foto", "comentarios en la foto de amigos". Cómo filtrar y excluir este tipo de historias
Puede filtrar estas Publicaciones buscando la presencia de la story
o la clave story_tags
ya que no están presentes en las Publicaciones realizadas por el Usuario.
Citando de la documentación la descripción de la clave de la story
Texto de historias no intencionalmente generadas por los usuarios, como las generadas cuando dos usuarios se hacen amigos; debe tener habilitada la migración "Incluir historias de actividades recientes" en su aplicación para recuperar estas historias
O puedes probar la transmisión de FQL como esta
select message from stream where source_id=me() and type in (46,56,80,56,128,247)
and filter_key in (select filter_key from stream_filter where uid=me())
que puede ayudarte a reducir las Publicaciones a una que desees.
Actualizar
Es posible que no necesite reducir el resultado usando el campo type
verificado por 林果 皞, por lo que la consulta se reduce a
select message from stream where source_id=me() AND filter_key in
(select filter_key from stream_filter where uid=me())
Use fql, el campo "tipo" es "nulo" si la descripción es algo así como "A seguido de B", "A le gusta Intel", "A comentó sobre su propio enlace" ... etc ...
SELECT created_time,description,likes,message,post_id FROM stream WHERE source_id=me() AND type!="" AND created_time<=now() LIMIT 50
Actualización: encontré que mi consulta no excluye la publicación en la historia de la página, la respuesta de Anvesh Saxena es correcta que la mía.
seleccione el mensaje del flujo donde source_id = me () Y filter_key in (seleccione filter_key de stream_filter donde uid = me ())
Actualización el 15 de mayo de 2013: Parece que tenemos problemas porque diferentes filter_key pueden contener el mismo post_id. Por ejemplo, algunos enlaces pueden aparecer tanto en "nf" filter_key como en Links filter_key "app_2309869772"
Actualización: investigo un poco y finalmente salgo de esta consulta (Reemplazar 2 "me ()" por otro user_id también funciona):
SELECCIONAR viewer_id, app_id, target_id, post_id, created_time, message, type, enlace permanente FROM stream WHERE source_id = me () Y created_time <= now () AND ((escriba IN (46,80,128,237,247)) O (type = "" AND target_id = me ())) LIMITE 150
Esta consulta API FQL se compara con el navegador web (probé con "Todas las historias" clicadas en mi muro):
Ventaja:
- Todos los feeds duplicados que se crearon dentro de un corto período de tiempo se incluirían. La versión del navegador web puede excluir estos feeds duplicados.
Desventaja:
- "etiquetado por alguien" no se incluiría (tiene sentido porque el ID de origen no es yo (), y no tiene sentido consultar a todos los amigos y filtrar por mí () IN (tagged_ids) debido a la preocupación por el rendimiento)
- La opción "Actualizar foto de portada" y "Actualizar foto de perfil" no se incluirán.
- Descubrí que la publicación del usuario de un caso a través de un dispositivo móvil no regresa de la tabla de transmisión, incluso el post_id específico, no es nada que podamos hacer.
- "(type =" "AND target_id = me ())" no funciona cuando su amigo comparte fotos y enlaces en su línea de tiempo. El estado compartido por amigo es trabajos.
Amablemente infórmeme si alguien tiene una mejor consulta
Aclamaciones