API de grafos do Facebook - Permissões adicionais da guia Páginas

9

Estou tentando criar uma guia de boas-vindas para uma das minhas páginas, mas gostaria de poder acessar as preferências de usuários (permissão user_likes).

Só posso encontrar documentação sobre como fazer isso em um aplicativo do Facebook ou em um site que integra o Facebook. Não consigo encontrar documentação sobre como fazer isso em um aplicativo (guia) dentro de um facebook < strong> page (como uma guia de boas-vindas).

É possível, como uma guia de página , solicitar permissões extras ao usuário, mas permitir o acesso à página sem ele, ou é um caso ou eu ter que fazer um aplicativo, bem como uma guia de página? Eu poderia ter um botão que, quando clicam, concede à página permissões extras?

Atualmente, estou tentando duas implementações separadas, nenhuma das quais posso começar a trabalhar, PHP e Javascript.

Obrigado,

Apenas usando

$loginUrl = $fb->getLoginUrl(
     array('canvas' => 1, 'scope' => 'user_likes,user_about_me,user_birthday')
);

echo "<a href='$loginUrl'>Login</a>";

Resulta em um link, que apenas redireciona o usuário (dentro do iframe de páginas) para uma tela com o logotipo do Facebook. Eu quero um diálogo de permissões!

Usandoocódigojavascript

<script>FB.init({appId:'APPID',status:true,//checkloginstatuscookie:true,//enablecookiestoallowtheservertoaccessthesessionxfbml:true,//parseXFBMLoauth:true//enableOAuth2.0});FB.login(function(response){if(response.authResponse){console.log('Welcome!Fetchingyourinformation....');FB.api('/me',function(response){console.log('Goodtoseeyou,'+response.name+'.');FB.logout(function(response){console.log('Loggedout.');});});}else{console.log('Usercancelledloginordidnotfullyauthorize.');}},{scope:'email'});</script>

Resultadosem

UnsafeJavaScriptattempttoaccessframewithURLhttps://www.facebook.com/dialog/oauth?api_key=158609350887973&app_id=158609350887973&client_id=158609350887973&display=popup&locale=en_US&method=permissions.oauth&origin=1&redirect_uri=http%3A%2F%2Fstatic.ak.fbcdn.net%2Fconnect%2Fxd_proxy.php%3Fversion%3D3%23cb%3Df2f7aed38%26origin%3Dhttp%253A%252F%url.com%252Ff3634c5da%26relation%3Dopener%26transport%3Dpostmessage%26frame%3Df9748b77&response_type=token%2Csigned_request&scope=email&sdk=joeyfromframewithURLhttp://url.com/gs/index.php.Domains,protocolsandportsmustmatch.

Ojavascripttambémabreaseguintecaixadeerro

Configurações de configuração do meu app

    
por Pez Cuckow 02.09.2011 в 03:24
fonte

5 respostas

6

Você está vendo o erro na sua janela pop-up porque o redirect_uri no seu URL de autorização não corresponde ao que está listado no URL do seu site na configuração do aplicativo. Para resolver isso, você precisa ativar a opção "Website" na configuração do aplicativo. Ative-o clicando na caixa de seleção ao lado de "Website" e, em seguida, insira o link (ou qualquer URL do seu site real) no texto "URL do site" caixa. Esse URL deve corresponder ao URL do host que você está fornecendo em redirect_uri. Isso deve resolver o erro da janela pop-up.

Em termos do erro "Tentativa de JavaScript inseguro de acessar o frame", você está usando um navegador de webkit? O Webkit lança esses erros, mas a maior parte pode ser ignorada. Veja isto para mais informações: "Tentativa insegura de JavaScript para acessar o frame com URL ... "erro gerado continuamente no inspetor do webkit do Google Chrome

    
por Johnny Oshika 04.09.2011 / 17:03
fonte
0

Use o ID do usuário no objeto de resposta em vez de 'me' quando você chamar FB.api Os dois métodos apontam para o fato de você não ter as configurações de domínio do website corretas nas configurações do aplicativo.

Fazemos exatamente isso em muitos dos nossos aplicativos de guia, por isso é definitivamente possível.

    
por slashwhatever 07.09.2011 / 14:55
fonte
0

Parece que você está usando o mesmo valor para app_id e api_key. Estes devem ser diferentes.

    
por John Syrinek 07.09.2011 / 16:26
fonte
0

Em vez de exibir o link ($ loginUrl) tente redirecionar o usuário, por exemplo, usando a função de cabeçalho php ou js location.href.

    
por Mateusz Bartkowiak 08.09.2011 / 15:46
fonte
-1

Sim, é possível. Leia: link

    
por fjsj 02.09.2011 / 04:32
fonte