Creo que me estoy volviendo loco. No puedo conseguir que funcione.
Simplemente quiero comprobar si a un usuario le ha gustado mi página con javascript en una iFrame
aplicación.
FB.api({
method: "pages.isFan",
page_id: my_page_id,
}, function(response) {
console.log(response);
if(response){
alert('You Likey');
} else {
alert('You not Likey :(');
}
}
);
Esto devuelve: Falso
Pero soy fan de mi página, ¿no debería volver a ser verdad?
Respuestas:
También me tiré el pelo por este. Su código solo funciona si el usuario ha otorgado un permiso extendido para lo que no es ideal.
Aquí hay otro enfoque.
En pocas palabras, si
OAuth 2.0
activa la opción avanzada de Canvas, Facebook enviará un mensaje$_REQUEST['signed_request']
junto con cada página solicitada dentro de su aplicación de pestaña. Si analiza la solicitud firmada, puede obtener información sobre el usuario, incluso si le ha gustado la página o no.fuente
signed_request
. Este es un enfoque peligroso. Debe compararlo con el secreto de su aplicación. Consulte esta respuesta para obtener más informaciónPuede usar (PHP)
Eso devolverá uno de tres:
Supongo que la única forma de no usar token para lograr esto es con la solicitud firmada que Jason Siffring acaba de publicar. Mi ayudante usando PHP SDK:
fuente
Puede hacerlo en JavaScript así ( basándose en la respuesta de @ dwarfy a una pregunta similar ):
Donde el archivo channel.html en su servidor solo contiene la línea:
Hay una pequeña duplicación de código ahí, pero entiendes la idea. Aparecerá un cuadro de diálogo de inicio de sesión la primera vez que el usuario visite la página (que no es exactamente lo ideal, pero funciona). Sin embargo, en visitas posteriores no debería aparecer nada.
fuente
Aunque esta publicación ha estado aquí durante bastante tiempo, las soluciones no son JS puro. Aunque Jason señaló que solicitar permisos no es ideal, lo considero algo bueno ya que el usuario puede rechazarlo explícitamente. Todavía publico este código, aunque (casi) lo mismo también se puede ver en otra publicación de ifaour . Considere esto como la única versión de JS sin demasiada atención a los detalles.
El código básico es bastante simple:
Alternativamente, reemplácelo
me
con el ID de usuario adecuado de otra persona (es posible que deba modificar los permisos a continuación para hacer esto, comofriends_likes
) Como se señaló, necesita más que el permiso básico:fuente
Yo uso jquery para enviar los datos cuando el usuario presiona el botón Me gusta.
Nota: puede usar algún texto de entrada oculto para obtener la identificación de su botón. En mi caso, lo tomo de la URL en "var fbl_id = h_fbl [4];" porque existe el ejemplo de identificación: url: http://mywebsite.com/post/22/some-tittle
así que analizo la URL para obtener la identificación y luego la inserto en mi base de datos en el archivo like.php. de esta manera no necesita pedir permisos para saber si alguien presiona el botón Me gusta, pero si quiere saber quién lo presiona, se necesitan permisos.
fuente