[Javascript] Cómo verificar si a un usuario le gusta mi página de Facebook o URL usando la API de Facebook


Answers

Puedes usar (PHP)

$isFan = file_get_contents("https://api.facebook.com/method/pages.isFan?format=json&access_token=" . USER_TOKEN . "&page_id=" . FB_FANPAGE_ID);

Eso devolverá uno de tres:

  • cadena verdadera cadena falso json
  • respuesta formateada de error si token
  • o page_id no son válidos

Supongo que la única manera de no usar token para lograr esto es con la solicitud firmada que Jason Siffring acaba de publicar. Mi ayudante con PHP SDK:

function isFan(){
    global $facebook;
    $request = $facebook->getSignedRequest();
    return $request['page']['liked'];
}
Question

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 aplicación iFrame .

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 un fan de mi página, ¿no debería ser verdad?




Aunque esta publicación lleva aquí bastante tiempo, las soluciones no son JS puras. Aunque Jason notó que solicitar permisos no es ideal, lo considero una buena cosa 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:

FB.api("me/likes/SOME_ID", function(response) {
    if ( response.data.length === 1 ) { //there should only be a single value inside "data"
        console.log('You like it');
    } else {
        console.log("You don't like it");
    }
});

Alternativamente, reemplázame con la ID de usuario adecuada de otra persona (es posible que necesites modificar los permisos que se friends_likes a continuación para hacer esto, como friends_likes ) Como se señaló, necesitas más que el permiso básico:

FB.login(function(response) {
    //do whatever you need to do after a (un)successfull login         
}, { scope: 'user_likes' });