Facebook access_token: как я получаю его, после того как пользователь принял мое приложение?

Когда пользователь посещает мой сайт, который содержит приложение Facebook в первый раз, когда он требует, чтобы он позволил его, и ему предлагают сделать это, затем я получаю код, который я могу преобразовать в access_token.Пока все хорошо.

Но как я получаю маркер, после того как пользователь уже посетил сайт? Пока этот маркер формируются, первый раз активен, все прекрасно. Но как я получаю другой маркер, когда пользователь уже позволил приложение неделю назад и только посещает мою страницу снова?

5
задан Jon Seigel 5 June 2010 в 23:13
поделиться

2 ответа

Я использую метод cookie для хранения access_token на компьютере пользователя.

FB.init({appId: 'your app id', status: true, cookie: true, xfbml: true});

В вашем файле facebook.php вам нужно установить cookieSupport в значение true, тогда:

private $cookieSupport = true;

Или используйте функцию get_facebook_cookie, найденную здесь: Единый вход с помощью JavaScript SDK

Access_token затем сохраняется в файл cookie с именем "fbs_APPID" ( с истечением срока действия ). Если вы хотите, чтобы cookie сохранялся более двух часов, вам нужно запросить расширенное разрешение «offline_access»:

Позволяет вашему приложению выполнять авторизованные запросы от имени пользователя в любое время. По умолчанию срок действия большинства токенов доступа истекает через короткий период времени, чтобы гарантировать, что приложения будут делать запросы только от имени пользователя, когда они активно используют приложение. Это разрешение делает токен доступа, возвращаемый нашей конечной точкой OAuth, долгоживущим.

0
ответ дан 14 December 2019 в 19:06
поделиться

с помощью php

session_start();
// Create our Application instance.
$facebook = new Facebook(array(
                'appId' => FACEBOOK_APP_ID,
                'secret' => FACEBOOK_APP_SECRET,
                'cookie' => true,
                'domain' => 'example.com'

));

$session = $facebook->getSession();

$me = null;
// Session based API call.
if ($session) {
    try {
        $uid = $facebook->getUser();
        $me = $facebook->api('/me');
        $_SESSION['me'] = $me;
        $_SESSION['uid'] = $uid;
        $_SESSION['session'] = $session;

    } catch (FacebookApiException $e) {
        error_log($e);
    }
}

вы можете ссылаться на access_token через $ _SESSION ['session'] ['access_token'] в своем приложении, для получения дополнительных руководств на fbdevtutorials.com

-2
ответ дан 14 December 2019 в 19:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: