Попытка войти в систему через Facebook api и вернуть адрес электронной почты на сайте php - PullRequest
0 голосов
/ 07 октября 2011

Пока это мой код:

<div id='fb-root'></div>
  <script src='http://connect.facebook.net/en_US/all.js'></script>
  <script>
     FB.init({ 
        appId:'xxxxxxxxxxxx', cookie:true, 
        status:true, xfbml:true , oauth:true, channelUrl:'http://www.federationofhumanity.com/facebookconnect/channel.html'
     });</script><fb:login-button show-faces='true' width='200' max-rows='1' perms='user_birthday,user_online_presence,user_website,email'>Login using Facebook</fb:login-button><script>
    FB.getLoginStatus(function(response) {
        if (response.authResponse) {
            document.getElementById('fb-root').innerHTML = '';

        } else {
            document.getElementById('fb-root').innerHTML = '';
        }
    });
    if ($user) 
    </script>    

(к вашему сведению, этот код включен в скрипт php с помощью команды readfile.) Как таковой, я могу показать кого-то как «вошедшего в систему», ноМне нечего отличать их от обычного пользователя на сайте.Мой сайт основан на php.Мне нужно получить их основной адрес электронной почты, чтобы сайт мог использовать его и предоставить персонализированный опыт, для которого они приходят на сайт.Мне нужно как-то получить их адрес электронной почты и превратить его в переменную для использования php.Помогите пожалуйста?

1 Ответ

1 голос
/ 08 октября 2011

После того, как пользователь аутентифицирует ваше приложение, Facebook может вернуть их по заданному вами URL-адресу [добавить параметр onlogin = 'window.location = "https://graph.facebook.com/oauth/authorize?client_id=XXXXX&redirect_uri=http://www.yoursite.com/facebookscript;?> & R =" + window.location.href;']

Этот сценарий может затем извлечь свой адрес электронной почты из Facebook, используя PHP SDK, теперь, когда у вас есть разрешение на его использование.

// call up the php SDK
require './facebook/facebook.php';

// now connect to facebook with our secret information
$facebook = new Facebook(array(
  'appId'  => XXXXXXX,
  'secret' => XXXXXXX,
  'cookie' => true
));

// get the facebook user id
$fb_user = $facebook->getUser();

// try to get their email address
try {
  $user_info = $facebook->api('/me'); // this is their profile basics
} catch (FacebookApiException $e) {
    echo "something went wrong: ". $e; die;
}

// print email address
echo "your email address is: ". $user_info['email']

Вы также можете получить электронное письмо с помощью JavaScript SDK, используя ответ.authResponse функция, которую вы в настоящее время оставили пустым.Но вам все еще нужен сценарий для его обработки и регистрации [вероятно, через ajax] - я бы предложил пользователю подтвердить свой адрес электронной почты, так как некоторые люди захотят сменить аккаунт.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...