1

Тема: авторизація через facebook

Привіт. Хочу реалізувати на сайті авторизацію через facebook.  Моє питання в тому що я отримую при успішному вході через facebook тільки ид та логін, а інші параметрни такі як почта не отримую. Від чого це залежить?
Ось робочий код: (моливо комусь знадобиться)

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ru">
<head>
    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/>
    <title>Аутентификация через Facebook</title>
</head>
<body>

<?php

$client_id = '**'; // Client ID
$client_secret = '**'; // Client secret
$redirect_uri = '**'; // Redirect URIs

$url = 'https://www.facebook.com/dialog/oauth';

$params = array(
    'client_id'     => $client_id,
    'redirect_uri'  => $redirect_uri,
    'response_type' => 'code',
    'scope'         => 'email'
);

echo $link = '<p><a href="' . $url . '?' . urldecode(http_build_query($params)) . '">Аутентификация через Facebook</a></p>';

if (isset($_GET['code'])) {
    $result = false;

    $params = array(
        'client_id'     => $client_id,
        'redirect_uri'  => $redirect_uri,
        'client_secret' => $client_secret,
        'code'          => $_GET['code']
    );

    $url = 'https://graph.facebook.com/v2.9/oauth/access_token';

    $tokenInfo = null;
    $tokenInfo = file_get_contents($url . '?' . http_build_query($params));

    $var = json_decode($tokenInfo, true);

    if (count($tokenInfo) > 0 && isset($var['access_token'])) {
        
        $params = array('access_token' => $var['access_token']);

        $userInfo = json_decode(file_get_contents('https://graph.facebook.com/me' . '?' . urldecode(http_build_query($params))), true);

        if (isset($userInfo['id'])) {
            $userInfo = $userInfo;
            var_dump($userInfo);
        }
    } else {
        //echo "<br>error<br>";
    }

}
?>

</body>
</html>

2

Re: авторизація через facebook

Привіт, в урлу треба добавити поля

https://graph.facebook.com/v2.6/me?access_token=' . $facebookToken . '&fields=email,name

, більше полів можна найти в доці фейсбука.

Подякували: Kasper, ostap34PHP2

3 Востаннє редагувалося Faraon (01.06.2017 08:40:01)

Re: авторизація через facebook

ось сторінка з досутупними полями:
https://developers.facebook.com/docs/gr … /v2.1/user

Подякували: Oleshko1