No mostrar el botón Me gusta de Facebook para aquellos a quienes ya les gustó

Quiero mostrar un botón Me gusta de Facebook para una página solo para aquellos a quienes no les gustó esa página. Así, cuando un usuario ya es fan de la página, no se mostrará el botón de me gusta.

Investigué mucho y descubrí que necesito implementar la conexión de Facebook y buscar el user_likes permiso y verifique si el usuario conectado tiene la página en su lista. Este es un ejemplo de trabajo http://www.fbrell.com/fb.api/does-like

Básicamente, necesito el código que hará esto:

Cuando el usuario hace clic en conectar, el contenido cambiará y se mostrará el botón Me gusta de Facebook si al usuario conectado no le gustó en el pasado.

preguntado el 01 de julio de 12 a las 21:07

¡Por cierto, esta demostración no funciona correctamente! Dice que me gustó la aplicación, pero ni siquiera tengo facebook.

solo una nota: cuando se trata del botón me gusta, o me gusta por api. el complemento no se puede modificar y parte del uso es proporcionar una forma para que los usuarios den a me gusta si es necesario. Al igual que usar API para Me gusta, se supone que debe devolver una forma para que los usuarios no les gusten. o eliminar la publicación Me gusta. -

@Mageek: mira mis ediciones. Buen trabajo en la edición del título, pero había mucho más trabajo por hacer en la publicación. Si ya está allí, arréglelo todo :) -

3 Respuestas

Implementar el SDK de JavaScript

Durante la inicialización del JS SDK, asegúrese de establecer xfbml a falso, de modo que el complemento no se renderice automáticamente. Tendrás que solicitar el user_likes permiso lo que significa que tendrá que asociar su sitio con una aplicación de Facebook. Esto es para que Facebook pueda realizar un seguimiento de quién solicita qué datos. Puedes usar el Fb.login() método para solicitar permisos y autenticar a sus usuarios.

Una vez que tenga el SDK de JavaSctipt, simplemente puede hacer una llamada a la API a través de

  • Gráfico
    FB.api('me/likes/PAGE_ID')

  • FQL
    FB.api("fql?q='SELECT+uid+FROM+page_fan+WHERE+uid=me()+AND+page_id=PAGE_ID")

Si esos devuelven datos, sabe que no debe mostrar el complemento Me gusta. Sin embargo, si al usuario aún no le ha gustado la página, esas llamadas arrojarán resultados vacíos y luego puede llamar al FB.XFBML.parse() método para renderizar el complemento Me gusta.

Respondido 01 Jul 12, 23:07

No, lo siento, no estoy en el negocio de hacer el trabajo de otras personas para ellos. Todo el código que necesitas está en los enlaces que proporcioné. Si quieres copiar y pegar, es mejor que lo tomes de la fuente. No olvides sustituir los APP_ID por los tuyos. - Lix

Debe realizar algunas llamadas a Graph API,
Después de obtener el ID de la página con FB.api('http://your-url.com');
puede verificar si al usuario actual le gusta su página con una consulta FQL:

'SELECT uid FROM page_fan WHERE uid=me() AND page_id=YOUR-PAGE-ID'

Respondido 01 Jul 12, 22:07

Si su botón Me gusta está en una página de lienzo o en una pestaña de página, puede implementar una puerta de abanico leyendo el solicitud firmada. Hay un montón de tutoriales y sugerencias sobre cómo hacerlo también aquí en stackoverflow para diferentes idiomas del lado del servidor. Por ejemplo, esta respuesta aquí: https://stackoverflow.com/a/7671496/601466
Simplemente busque "puerta de fans" y "solicitud firmada".

contestado el 23 de mayo de 17 a las 12:05

Solo si el sitio está utilizando el Complemento de registro se pasará un signed_request. Creo que estamos hablando de un sitio web externo y no de una pestaña de página o una aplicación de lienzo. - Lix

Bueno, lo necesito en una página web. volkovmqx

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.