Como obter o ID do usuário do Facebook da minha aplicação?

Eu criei um aplicativo do facebook e envie um pedido para um usuário por meio do código abaixo. Agora, quando um usuário permite o meu aplicativo, eu preciso do seu endereço de identificação e e-mail no meu URL de canvas. Mas no código abaixo, o usuário não vá para o URL da minha canvas. Então, por favor me ajude a resolver, como um usuário vai ao meu URL de canvas quando ele permite o meu aplicativo e eu recebo o ID do usuário desse usuário? Meu código está abaixo:

require_once ‘facebook.php‘;
$ facebook = novo Facebook (array (
‘appId’ => ‘#######’,
‘segredo’ => ‘###################’,
‘cookie’ => true,));
$ req_perms = “publish_stream, offline_access, user_status, email, read_stream”;

$ session = $ facebook-> getSession ();

$ loginUrl = $ facebook-> getLoginUrl (array (‘canvas’ => 1, ‘fbconnect’ => 0, ‘req_perms’ => $ req_perms));
$ me = null;

se (! $ session) {echo “top.location.href = ‘$ loginUrl’;”; exit;}

outro{

try { $uid = $facebook->getUser(); $me = $facebook->api('/me'); } catch (FacebookApiException $e) { echo "top.location.href= '$loginUrl';"; exit;} } 

Então, me ajude a obter o ID do usuário.

desde já, obrigado

riad

A ID e o email do Facebook para o usuário atual podem ser acessados ​​através de:

 $me['id']; $me['email']; 

É o que você está procurando?

Em primeiro lugar, seu código está “mal escrito”. O bloqueio de catch no seu código “quando executado” não significa que o usuário não tenha efetuado login. Isso significa que algo deu errado no seu bloco de try (também conhecido como Facebook Call).

Agora, para sua pergunta, você só precisa colocar isso em seu bloco try :

 $data = $facebook->api('/me?fields=id,email'); 

NOTA IMPORTANTE:
Você pode não receber o e-mail real do usuário, o usuário pode optar por não compartilhá-lo com você e desta forma o Facebook criará um e-mail “espelho” para compartilhar com seu aplicativo.

Não estou familiarizado com o php para comentar o código acima. No entanto, em geral, seria melhor usar o javascript sdk para login sozinho (enfrentou o mesmo problema no asp.net). Dessa forma, postar o login do usuário, o controle retorna à mesma página onde foi iniciada. Por exemplo:

  

Por fim, eu resolvo o meu problema e agora eu posso facilmente obter o ID do usuário do Facebook e o endereço de e-mail e outras informações relacionadas. Usando este código, posso acertar no Facebook para autenticação de usuário particular e quando o usuário aceita meu aplicativo, então eu posso obter o seu facebook ID de usuário, e-mail e outras informações em $ user_info array.Hope it will help you.

Basta ver o meu código abaixo:

  '########', 'secret' => '##########################', 'cookie' => true, )); $req_perms = "publish_stream,offline_access,user_status,email,read_stream"; $session = $facebook->getSession(); $loginUrl = $facebook->getLoginUrl(array('canvas'=> 1,'fbconnect' => 0,'req_perms' => $req_perms)); $user_info = null; if (!$session) { echo "";exit;} else{ try { $user_info = $facebook->api('/me'); } catch (FacebookApiException $e) { echo ""; exit;} } ?>      "; echo "Hi $user_name ! Your E-mail Address is: ".$user_info['email']."
"; echo "Thanks for accepting our application."; //print_r($user_info); ?>