Cześć! Skoro już było Google, było Live, to czas na Facebook Jak zawsze na przykładzie pobierania adresu e-mail, ale po ustawieniu odpowiednich uprawnień, można pobrać prawie wszystko. Do pliku Facebook_API.php, wrzucamy: PHP: <?php define('FACEBOOK_CLIENT_ID', 'Twoje ID aplikacji z FB'); define('FACEBOOK_CLIENT_SECRET', 'Twój sekretny kod'); define('CONFIG_CURRENT_DOMAIN', 'twoja-strona.com'); class Facebook_API { public function __construct($redirect_uri = null) { $this->redirect_uri = urlencode($redirect_uri); $this->client_id = FACEBOOK_CLIENT_ID; $this->client_secret = FACEBOOK_CLIENT_SECRET; } public function Dialog($scope = null) { $state = uniqid(); if (isset($_COOKIE['facebook_access_state'])) { setcookie('facebook_access_state', null, time() - 3600, '/', '.' . CONFIG_CURRENT_DOMAIN); } setcookie('facebook_access_state', $state, time() + 3600, '/', '.' . CONFIG_CURRENT_DOMAIN); return sprintf("https://www.facebook.com/dialog/oauth?client_id=%s&redirect_uri=%s&state=%s&scope=%s", $this->client_id, $this->redirect_uri, $state, $scope ); } public function GetAccessToken() { $prepare_token = sprintf("https://graph.facebook.com/oauth/access_token?client_id=%s&redirect_uri=%s&client_secret=%s&code=%s", $this->client_id, $this->redirect_uri, $this->client_secret, $_GET['code'] ); parse_str(file_get_contents($prepare_token), $params); return isset($params['access_token']) ? $params['access_token'] : 0; } public function OpenGraph($open_graph = null, $fields = 'email') { $access_token = $this->GetAccessToken(); if (empty($access_token)) { return false; } $open_graph = sprintf("https://graph.facebook.com/v2.4/%s?access_token=%s&fields=%s", $open_graph, $access_token, $fields); return json_decode(file_get_contents($open_graph), true); } } A w pliku facebook.php: PHP: <?php ob_start(); include_once('Facebook_API.php'); $oFacebook_API = new Facebook_API('http://twoja-strona.com/facebook.php'); if (!isset($_GET['code']) OR !isset($_GET['state'])) { $dialog = $oFacebook_API->Dialog('public_profile,email'); Header('Location: ' . $dialog); exit; } $facebook_access_state = empty($_COOKIE['facebook_access_state']) ? 0 : $_COOKIE['facebook_access_state']; if ($_GET['state'] !== $facebook_access_state) { // Jakieś przekierowanie lub komunikat o błędzie } $graph = $oFacebook_API->OpenGraph('me', 'name,email'); if (!isset($graph['email'])) { // Przekierowanie lub komunikat jeżeli nie pobrało maila } echo $graph['email']; // lub np. ID profilu Tak, wiem - nudny jestem z tymi API, ale wiem, że bardzo często się tego szuka i potrzebuje Pozdrawiam, Rafał