2010-12-01 44 views
6

Quiero mostrar un mensaje diferente si un usuario está actualmente conectado a Facebook y le gusta la página actual. Entiendo:Facebook gráfico api determinar si el usuario le gusta url

FB.Event.subscribe('edge.create', function(response) { 
    // you like this 
}); 

cual se disparará cuando un usuario le gusta la página, pero cuando vuelva a cargar la página ¿Cómo se determina que ya que la página actual?

Gracias!

Respuesta

0

Desde el API de gráficos se puede obtener de la talla de un usuario mediante su identificación, como:

https://graph.facebook.com/ID/CONNECTION_TYPE

por lo que para conseguir la talla de poner su token de acceso y:

https://graph.facebook.com/me/likes?access_token=2222222222222222

luego busque su página si le gusta o no.

Sin embargo, siempre puedes probar las consultas FQL que realmente no intenté para los "Me gusta".

Espero que haya sido de ayuda.

+0

Necesita el token de acceso de ** usuario ** para eso. – ceejayoz

+0

sí, lo mencioné en el segundo enlace de ejemplo – Rabea

2

Sentido que describe la página como "página actual" Entiendo que está en una pestaña de iframe. Si este es el caso, la solicitud firmada le proporciona esa información como $decode_signed_request = array('page' => array('liked' => true/false)).

De lo contrario, puede suministrar una página de lienzo con los parámetros GET fb_page_id, que debe incluir el parámetro fb_sig_added a la solicitud del servidor con un 0/1 según si el usuario es fan de esa página. (Esto puede requerir la desactivación de OAuth 2.0 en la configuración de migración)

Si está hablando del complemento social similar con una URL gráfica abierta, no puede averiguar fácilmente si el usuario es un fan sin una instalación de la aplicación. Si tiene eso, puede hacer una llamada de API al /me/likes que le devolverá una lista de todos los "me gusta" que tiene el usuario y buscará el ID del objeto que está probando.

+0

Esto funciona solo cuando la aplicación está configurada como una pestaña de la página de Facebook. Y dice si al usuario actual le ha gustado o no esta página de Facebook. – challet

+0

Mi suposición original se basa en eso como se indica en mi primera oración. De lo contrario, necesitaría una instalación de la aplicación. También puede almacenar un marcador que le haya gustado al usuario en una sesión back-end, cuando hacen clic en el botón Me gusta. – Bryan

3

Estoy bastante seguro de que no puedes hacer lo que quieras (en este contexto).

Tome un vistazo a esta página: http://fbrell.com/fb.api/does-like

Usted verá lo que necesita el usuario para aprobar un permiso para ver los gustos.

Es un gran riesgo de seguridad permitir que alguien vea los "me gusta" de un usuario, incluso para la página actual. Piénselo, puede falsificar fácilmente la página actual y pretender ser cualquier página.

PERO ...

Lo que recomiendo que hacer es configurar una cookie para su propio beneficio (en javascript) cuando el usuario 'Favoritos' de su página. Suponiendo que obtiene un gran porcentaje de sus "Me gusta" en esta página, puede correlacionar de forma segura la presencia de la cookie con un "Me gusta".

He visto algunas excepciones de seguridad haciendo esto, pero parece que funciona (al menos en Chrome).

1

Estás más seguro utilizando la API Graph ya que Facebook está en proceso de desaprobar su API REST.Entonces, para obtener si un usuario le gusta su página, necesitará la identificación de la página y el token de acceso de su aplicación.

https://graph.facebook.com/me/likes/PAGE_ID?format=json&access_token=ACCESS_TOKEN

  • Dónde page_id es el identificador de página que desea comprobar.
  • y ACCESS_TOKEN es su token de acceso a las aplicaciones.
+1

funciona solo con páginas de Facebook, no con ninguna URL. – challet

0

Guardar ID de usuario o third_party_id la base de datos cuando el usuario le gusta el enlace

obtener third_party_id

graph.facebook.com/me/?fields=third_party_id~~V~~3rd & señal_acceso = xxx

0
https://graph.facebook.com/{FB_USER_ID}?fields=likes.target_id(167584559969748)&access_token={VALID_ACCESS_TOKEN} 

muestra datos si a ese usuario le ha gustado esa página de seguidores de Facebook.

o

https://graph.facebook.com/{FB_USER_ID}?fields=likes.fields(link) 

muestra una lista de enlaces gustado, desde donde se puede obtener el enlace que busca.

Todos estos necesitan permisos 'user_likes' y/o friend_likes.

Cuestiones relacionadas