Miudadestimida Posted December 8, 2011 at 03:01 PM Report #425325 Posted December 8, 2011 at 03:01 PM Boa Tarde. Eu tenho um script que só queria que fosse activado se o utilizador estivesse "logado" no facebook. Existe alguma maneira através de PHP de verificar isso? Talvez através dos cookies? Existe algum plugin do facebook que mostre esta informação? Já procurei muito e ainda não encontrei solução para esta situação. Desde já agradeço a vossa ajuda!
brunoais Posted December 8, 2011 at 03:15 PM Report #425330 Posted December 8, 2011 at 03:15 PM Eu já estive a pesquisar um pouco. Existe uma API para isso em que registas o teu programa e pouco mais. Eu tb li em algum lado q depois ficas com um ID unico e podes aceder às contas dos utilizadores do facebook qd quiseres (dependendo das permissões q tiveres). AVISO: Para poderes ter acesso à informação de cda utilizador do facebook ele tem que dar permissão ao teu programa para aceder aos dados. "[Os jovens da actual geração]não lêem porque não envolve um telecomando que dê para mirar e atirar, não falam porque a trapalhice é rainha e o calão é rei" autor: thoga31 Life is a genetically transmitted disease, induced by sex, with death rate of 100%.
morsa Posted December 8, 2011 at 11:57 PM Report #425559 Posted December 8, 2011 at 11:57 PM Podes ser mais específico? Tens aqui o SDK do facebook para PHP https://github.com/facebook/php-sdk E no exemplo: https://github.com/facebook/php-sdk/blob/master/examples/example.php Precisas de criar uma facebook app - uma aplicação do facebook - que será o que te permite aceder aos dados do utilizador. Esta aplicação do Facebook precisa de um URL válido. Sem um URL válido não vais ter grande sorte (perdi horas com isto!!). Penso que depois não é necessário que o utilizador permita o acesso para verificar se ele está ou não logado, até porque é o PC do cliente que vai aceder ao teu servidor, logo não faz grande diferença. Somente se quiseres puublicar ou aceder às informações do utilizador do Facebook é que precisas que ele dê permissões para tal. Há uma outra hipótese, se não me engano, com Javascript. Se quiseres posso procurar. Embora também precises de criar uma aplicação do facebook. Vê também este link: http://developers.facebook.com/docs/reference/php/
KTachyon Posted December 11, 2011 at 12:50 PM Report #426005 Posted December 11, 2011 at 12:50 PM Penso que não é necessário teres uma app (ou que o utilizador tenha dado permissões a uma app tua) para poderes saber se a pessoa está ou não loggada no Facebook. Apenas não consegues saber mais nenhuma informação. “There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult.” -- Tony Hoare
morsa Posted December 11, 2011 at 07:53 PM Report #426073 Posted December 11, 2011 at 07:53 PM @KTachyon - Talvez com a API antiga não fosse necessário. Com a nova tens que autorizar, inclusivamente. Portanto, do que consegui apurar. É necessário ir a https://developers.facebook.com/apps e criar a aplicação. Definir o nome e o URL onde a aplicação ira trabalhar. Após isto, e eu testei, é preciso esperar alguns minutos para que a aplicação se propague aos vários servidores do Facebook. Uma vez definidos os parâmetros, é necessario incluir o SDK do facebook (dos links acima). Copiei o file do example e modifiquei-o para o seguinte: // o ficheiros que estão no Facebook SDK do GIT require '../src/facebook.php'; // Create our Application instance (replace this with your appId and secret). $facebook = new Facebook(array( 'appId' => 'chave da aplicação criada', 'secret' => 'secret da aplicação criada', )); // Get User ID $user = $facebook->getUser(); // se $user = 0 é porque não estava logado ou a aplicação não tem permissões // para aceder aos dados do utilizador, incluido verificar se está logado no FB // portanto, é necessário criar um link para loggar o user e dar permissões // para a nossa aplicação poder utilizador os dados do utilizador if (!$user) { echo "User não logado ou a applicação não é permitida pelo utilizador <br />"; $loginUrl = $facebook->getLoginUrl(); echo '<a href="' . $loginUrl .'"> Login </a>'; } else { echo "User loggado. <br/> "; // utilizador está logado e tentar obter os dados do utilizador try { $user_profile = $facebook->api('/me'); echo "<pre>"; print_r($user_profile); } catch (FacebookApiException $e) { error_log($e); $user = null; } } O código está comentado q.b. Acho que não preciso de explicar muito mais. E ficou funcional. Podem testar em http://www.morsadesign.com/facebook_test/examples/. Contudo, é sempre necessário que o utilizador dê permissões à aplicação. Foi a única forma que consegui em PHP. Mais uma vez reitero que já fiz algo parecido em Javascript e que é possível, com algum tipo de "hack" saber se o user está loggado ou não. Espero que ajude de alguma forma. 1abraço!
KTachyon Posted December 11, 2011 at 08:02 PM Report #426074 Posted December 11, 2011 at 08:02 PM Aquilo que disse é possível através do SDK Javascript. “There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult.” -- Tony Hoare
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now