Acho que estou enlouquecendo. Eu não posso fazê-lo funcionar.
Só quero verificar se um usuário gostou da minha página com javascript em um iFrame
aplicativo.
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 :(');
}
}
);
Isso retorna: False
Mas sou um fã da minha página, então ela não deveria retornar true ?!
Respostas:
Eu arranquei meu cabelo por cima deste também. Seu código só funciona se o usuário concedeu uma permissão estendida para o que não é ideal.
Aqui está outra abordagem.
Resumindo, se você ativar a
OAuth 2.0
opção avançada do Canvas, o Facebook enviará um$_REQUEST['signed_request']
junto com todas as páginas solicitadas em seu aplicativo de guia. Se você analisar esse assinado_request, poderá obter algumas informações sobre o usuário, incluindo se ele gostou da página ou não.fonte
signed_request
. Esta é uma abordagem perigosa. Você deve compará-lo com o segredo do seu aplicativo. Verifique esta resposta para obter mais informaçõesVocê pode usar (PHP)
Isso retornará um de três:
Acho que a única maneira de não usar token de conseguir isso é com o assinado_request que Jason Siffring acabou de postar. Meu ajudante usando PHP SDK:
fonte
Você pode fazer isso em JavaScript dessa maneira (a partir da resposta de @dwarfy a uma pergunta semelhante ):
Onde o arquivo channel.html em seu servidor contém apenas a linha:
Há uma pequena duplicação de código lá, mas você entendeu. Isso abrirá uma caixa de diálogo de login na primeira vez que o usuário visitar a página (o que não é exatamente ideal, mas funciona). Nas visitas subsequentes, nada deve aparecer.
fonte
Embora este post já esteja aqui há um bom tempo, as soluções não são JS puro. Embora Jason tenha notado que solicitar permissões não é o ideal, considero isso uma coisa boa, já que o usuário pode rejeitá-la explicitamente. Eu ainda posto esse código, embora (quase) a mesma coisa também possa ser vista em outro post de ifaour . Considere esta a única versão JS sem muita atenção aos detalhes.
O código básico é bastante simples:
Alternativamente, substitua
me
pelo ID de usuário adequado de outra pessoa (pode ser necessário alterar as permissões abaixo para fazer isso, comofriends_likes
) Conforme observado, você precisa de mais do que a permissão básica:fonte
eu uso o jquery para enviar os dados quando o usuário pressiona o botão like.
Nota: você pode usar algum texto de entrada oculto para obter o id do seu botão. No meu caso, eu o retiro do próprio url em "var fbl_id = h_fbl [4];" porque existe o exemplo de id: url: http://mywebsite.com/post/22/some-tittle
então analiso a url para obter o id e, em seguida, insiro no meu banco de dados no arquivo like.php. desta forma, você não precisa pedir permissão para saber se alguém pressionou o botão curtir, mas se você deseja saber quem o pressionou, as permissões são necessárias.
fonte