Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Jordan Pinheiro_147113

login facebook

Recommended Posts

Seguinte eu conseguir fazer login com facebook... ele retorna os dados abaixo... mas!!! queria saber como faço para retorna o o email da pessoa e as páginas que a pessoa administra... (estou criando um app para o facebook)

 

Array
(
   [id] => 133332130943988
   [name] => Jordan Pinheiro
   [first_name] => Jordan
   [last_name] => Pinheiro
   [link] => http://www.facebook.com/caburas
   [username] => caburas
   [location] => Array
       (
           [id] => 104066829633330683
           [name] => Feira de Santana
       )

Compartilhar este post


Link para o post
Compartilhar em outros sites

eu sabia disso rsrs mas não conseguir achar nada... vlw vou ver e vejo se é só isso... valeu cabra!

 

Cabra eu li... achei mais o menos o que queria aqui (https://developers.facebook.com/docs/authentication/permissions/#extended_perms)

 

 

agora n entendi se eu faço a requisição diretamente no php ou no aplicativo... eu vi q modificar no aplicado config dentro do face.... pode me dar uma luz...?

Compartilhar este post


Link para o post
Compartilhar em outros sites

colega vou te mandar dois arquivos que utilizo para realizar este login

 

redirect.php (Página que você utiliza para gerar o login)

 

<?php
/**
* Utilizado para realizar login ou logoff de usuário no Facebook
* @var $login (armazena a url para login )
* @define String LOGIN_FACEBOOK (cria um define com a URL de login)
*/

require_once('lib/facebook.php');

// Create our Application instance (replace this with your appId and secret).
$facebook = new Facebook(array(
 'appId'  => APPID_FACEBOOK,
 'secret' => SECRET_FACEBOOK,
));

// Login or logout url will be needed depending on current user state.
$login = array('redirect_login_facebook'=>$facebook->getLoginUrl(array("scope" => PEDIDO_PERMISSAO_FACEBOOK)));

/**
* Cria uma variavél contendo a url para login
* @var String $header_login_facebook
*/
extract($login, EXTR_OVERWRITE);

 

 

callback.php (Página que recebe os dados de autenticação vindos do facebook)

 

<?php
/**
* Copyright 2011 Facebook, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may
* not use this file except in compliance with the License. You may obtain
* a copy of the License at
*
*     http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations
* under the License.
*/

require_once('lib/facebook.php');

// Create our Application instance (replace this with your appId and secret).
$facebook = new Facebook(array(
 'appId'  => APPID_FACEBOOK,
 'secret' => SECRET_FACEBOOK,
));

// Get User ID
$user = $facebook->getUser();

// We may or may not have this data based on whether the user is logged in.
//
// If we have a $user id here, it means we know the user is logged into
// Facebook, but we don't know if the access token is valid. An access
// token is invalid if the user logged out of Facebook.

if ($user) {
 try {

   $ObjUsuario = new Usuario();

   // Proceed knowing you have a logged in user who's authenticated.
   $profile = $facebook->api('/me');

   $ObjUsuario->_id = $profile['id'];
   $ObjUsuario->_name = $profile['name'];
   $ObjUsuario->_username = $profile['username'];
   $ObjUsuario->_email = $profile['email'];
   $ObjUsuario->_rede_social = LOGIN_FACEBOOK;
   $ObjUsuario->newUser(); /** Registra os dados do novo usuário **/


 } catch (FacebookApiException $e) {
   error_log($e);
   $user = null;
 }
}

 

 

A classe LIB sendo chamada é a API oferecida pelo facebook.

 

Qualquer dúvida posta ai

Compartilhar este post


Link para o post
Compartilhar em outros sites

Os tipos de permissões que quero do face, exemplo:

 

'publish_stream,read_friendlists,email'

Compartilhar este post


Link para o post
Compartilhar em outros sites

Seu cabra! Muito obrigado pela ajuda... ficou muito mais simples e fácil do que eu pensava....

 

Muito obrigado mesmo!

 

 

Uma pergunta só... Eu querendo criar um app para o facebook... eu preciso seguir esse mesmo api que eu estou usando para autenticação no meu site... ou ele funciona de uma forma diferente?

 

passando a url gerada....

 

https://www.facebook.com/dialog/oauth?client_id=451996431507419&redirect_uri=http%3A%2F%2Fbilheteria.me%2Ffb_teste%2Fexamples%2Fexample.php&state=482266704bd90e102dd5ecfc4c173b5c&scope=publish_stream%2Cread_friendlists%2Cemail"

 

ele da o seguinte erro

 

Erro

Ocorreu um erro em Bilheteria.me. Tente novamente mais tarde.

 

API Error Code: 100

API Error Description: Invalid parameter

Error Message: Unsupported scope: 'email"'. Supported scopes: ads_management create_event create_note email export_stream friends_about_me friends_activities friends_birthday friends_checkins friends_education_history friends_events friends_games_activity friends_groups friends_hometown friends_interests friends_likes friends_location friends_notes friends_online_presence friends_photo_video_tags friends_photos friends_questions friends_relationship_details friends_relationships friends_religion_politics friends_status friends_subscriptions friends_videos friends_website friends_work_history manage_friendlists manage_notifications manage_pages offline_access photo_upload publish_actions publish_checkins publish_stream read_friendlists read_insights read_mailbox read_page_mailboxes read_requests read_stream rsvp_event share_item sms status_update user_about_me user_activities user_birthday user_checkins user_education_history user_events user_games_activity user_groups user_hometown user_interests user_likes user_location user_notes user_online_presence user_photo_video_tags user_photos user_questions user_relationship_details user_relationships user_religion_politics user_status user_subscriptions user_videos user_website user_work_history video_upload xmpp_login

 

 

já tinha visto isso alguma vez

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você não vai conseguir fugir muito desse esquema não

Compartilhar este post


Link para o post
Compartilhar em outros sites

você tem que verificar suas chaves e url de retorno cadastrada no face, naquele link mostra como funciona.

 

Sem problema, precisando.

Compartilhar este post


Link para o post
Compartilhar em outros sites

mais uma... eu fiz lougout direto no facebook.... quando acessei meu site.. ainda dava como se eu tivesse logado... acho que ficou no session ou no cookie.. como eu verifico se o logout foi feito direto no site facebook

 

fiz login com outro face e ele manteve os dados do antigo usuario como sr o cookie tivesse segurando...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se você não cadastrou um cookie pessoal de validação

ou

Verifique se você está acessando corretamente a página redirect.phps

 

Obs.: Quando você dar permissão para um usuário logar com o facebook, o facebook só pede permissão a primeira vez, nas próximas ele autentica de forma direta, para passar por todo o processo você deve ir na sua conta do face e excluir a permissão.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Certo, como você fez o login com o seu perfil, verifique se esta chamando o arquivo redirect.php corretamente, pois se ele verificar se é uma conta diferente 'acredito' que ele pede um novo login, chamando corretamente que eu falo é verificar se não tem nenhuma validação antes da autenticação que verifica se já existe algum usuário logado.

 

Uma sugestão, se a pessoa esta acessando o arquivo redirect.php ele deseja fazer login, então limpe os cookies e session sempre que acessar este arquivo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

ok

 

teste ai... http://bilheteria.me/fb_teste/examples/example.php ele faz login beleza traz os dados... ai você sai do face.. ou clica direto em logout lá e ele permanece

 

 

veja o cod

 

<?php
/**
* Copyright 2011 Facebook, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may
* not use this file except in compliance with the License. You may obtain
* a copy of the License at
*
*     http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations
* under the License.
*/

require '../src/facebook.php';

// Create our Application instance (replace this with your appId and secret).
$facebook = new Facebook(array(
 'appId'  => '451996431507419',
 'secret' => 'e1368a9cc4dc50deedde902c0c8c1ef5486',
));

// Get User ID
$user = $facebook->getUser();

// We may or may not have this data based on whether the user is logged in.
//
// If we have a $user id here, it means we know the user is logged into
// Facebook, but we don't know if the access token is valid. An access
// token is invalid if the user logged out of Facebook.

if ($user) {
 try {
   // Proceed knowing you have a logged in user who's authenticated.
   $user_profile = $facebook->api('/me');
 } catch (FacebookApiException $e) {
   error_log($e);
   $user = null;
 }
}

// Login or logout url will be needed depending on current user state.
if ($user) {
 $logoutUrl = $facebook->getLogoutUrl();
} else {
 $loginUrl = $facebook->getLoginUrl(array("scope" => "publish_stream,read_friendlists,email"));
}
echo $loginUrl = $facebook->getLoginUrl(array("scope" => "publish_stream,read_friendlists,email"));
// This call will always work since we are fetching public data.
$naitik = $facebook->api('/naitik');

?>
<!doctype html>
<html xmlns:fb="http://www.facebook.com/2008/fbml">
 <head>
   <title>php-sdk</title>
   <style>
     body {
       font-family: 'Lucida Grande', Verdana, Arial, sans-serif;
     }
     h1 a {
       text-decoration: none;
       color: #3b5998;
     }
     h1 a:hover {
       text-decoration: underline;
     }
   </style>
 </head>
 <body>
   <h1>php-sdk</h1>

   <?php if ($user): ?>
     <a href="<?php echo $logoutUrl; ?>">Logout</a>
   <?php else: ?>
     <div>
       Login using OAuth 2.0 handled by the PHP SDK:
       <a href="<?php echo $loginUrl; ?>">Login with Facebook</a>
     </div>
   <?php endif ?>

   <h3>PHP Session</h3>
   <pre><?php print_r($_SESSION); ?></pre>

   <?php if ($user): ?>
     <h3>You</h3>
     <img src="https://graph.facebook.com/<?php echo $user; ?>/picture">

     <h3>Your User Object (/me)</h3>
     <pre><?php print_r($user_profile); ?></pre>
   <?php else: ?>
     <strong><em>You are not Connected.</em></strong>
   <?php endif ?>

   <h3>Public profile of Naitik</h3>
   <img src="https://graph.facebook.com/naitik/picture">
   <?php echo $naitik['name']; ?>
 </body>
</html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Colega, registrei lá e esta acontecendo o seguinte. Vou falar passo-a-passo

 

1 - Realizo o login

* Facebook verifica se já possuo a permissão, se sim somente valida. Não possuo a permissão ele pede a permissão.

 

2 - Faço logout

* Facebook, realiza o logout, mas como o código de login está sendo repetido depois do 'else' ele realiza o login novamente. Desta forma você pensa que ele não está realizando o logout. Mas ele esta fazendo logout e login logo depois.

 


// Login or logout url will be needed depending on current user state.
if ($user) {
 $logoutUrl = $facebook->getLogoutUrl();
} else {
 $loginUrl = $facebook->getLoginUrl(array("scope" => "publish_stream,read_friendlists,email"));
}

>>>> Novo login <<<<<<
echo $loginUrl = $facebook->getLoginUrl(array("scope" => "publish_stream,read_friendlists,email"));

 

Se você deseja mostrar a url na tela, dê um echo na variável

echo $loginUrl; 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bacana demais, quando tiver finalizado apresenta ele.

 

E qualquer dúvida posta ai.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.