...
WEB и WordPress новости, темы, плагины. Здесь мы делимся советами и лучшими решениями для сайтов.

Как создать долгоживущий токен доступа Facebook

151

Вы когда-нибудь сталкивались с задачами API? Тогда, вероятно, вы слышали о «токене доступа». Маркер доступа – это своего рода маркер идентификации, который социальные веб-сайты (например, Facebook) используют для выполнения операций от имени пользователя.

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

Что касается API Facebook, их API предоставляет 2 типа токенов: краткосрочные и долгоживущие токены доступа.

Недолговечный токен имеет короткий промежуток времени. Это означает, что вы не можете выполнять вызовы API после истечения срока действия токена. Вы получите несанкционированный ответ по истечении срока действия токена. Для каждого вызова API требуется действительный токен доступа в качестве параметра, тогда только они отправляют ответ обратно.

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

Это не имеет смысла. Это своего рода повторяющийся процесс, который на самом деле не нравится пользователю.

Вот где мы должны использовать концепцию долгоживущего токена доступа Facebook. Долгоживущий токен обычно длится около 60 дней. И это намного лучше, чем использовать недолговечные токены.

Сказав это, давайте посмотрим, как создать долгоживущий токен доступа Facebook.

Зарегистрировать приложение

Для начала вам необходимо зарегистрировать приложение на Facebook Developers. Вы получите шаг за шагом руководство о том, как зарегистрировать и настроить приложение здесь.

После регистрации приложения скопируйте идентификатор приложения и секрет приложения, которые нам понадобятся через мгновение.

Как создать долгоживущий токен доступа Facebook

Сгенерируйте долгоживущий токен доступа

Теперь у нас есть идентификатор приложения и секретные ключи приложения. Создайте файл с именем config.phpи добавьте наши ключи с помощью метода PHP define().

config.php

<?php
define('CLIENT_ID', 'YOUR_CLIENT_ID');
define('CLIENT_SECRET', 'YOUR_CLIENT_SECRET');
define('REDIRECT_URL', 'YOUR_SITE_URL/redirect.php');
?>

В приведенном выше коде мы указали REDIRECT_URL на YOUR_SITE_URL / redirect.php. Итак, создаем файл redirect.php. Это файл, в котором мы напишем код для генерации токена Long-Lived.

Но перед этим нам нужно создать URL-адрес для входа, который перенаправляет пользователя на страницу входа в Facebook для авторизации вашего приложения. Создайте файл login.phpи добавьте в него приведенный ниже код.

login.php

<?php
require_once "config.php";
echo "<a href='https://www.facebook.com/v2.10/dialog/oauth?client_id=". CLIENT_ID. "&redirect_uri=". REDIRECT_URL. "'>Login To Facebook</a>";
?>

Когда пользователь нажимает ссылку для входа в Facebook, он перенаправляется на страницу входа в Facebook. После того, как они разрешат разрешение вашему приложению, пользователь перенаправит на YOUR_SITE_URL / redirect.php. Взамен мы получаем код в виде параметра GET от Facebook. Используя это значение кода, мы генерируем первый кратковременный токен доступа. А затем с помощью этого недолговечного токена мы генерируем долгоживущий токен доступа.

Убедитесь, что на вашем сервере включено расширение CURL, иначе наш код не будет работать должным образом.

redirect.php

<?php
require_once "config.php";
 
if (isset($_GET['code']) && !empty($_GET['code'])) {
    $post = ['client_id'=> CLIENT_ID, "redirect_uri" => REDIRECT_URL, "client_secret" => CLIENT_SECRET, 'code' => $_GET['code']];
    $arr_result = getFBResponse($post);
 
    //generate long-lived access token
    if (isset($arr_result->access_token)) {
        $post1 = ['grant_type' => 'fb_exchange_token', 'client_id'=> CLIENT_ID, "client_secret" => CLIENT_SECRET, 'fb_exchange_token' => $arr_result->access_token ];
        $arr_result1 = getFBResponse($post1);
        echo "Long Lived Token: ". $arr_result1->access_token;
    }
}
 
function getFBResponse($arr_post = []) {
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL,'https://graph.facebook.com/v2.10/oauth/access_token');
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($arr_post));
    $response = curl_exec($ch);
    return json_decode($response);
}
?>

Это оно! Мы надеемся, что вы узнали о процессе создания долгоживущего токена доступа для Facebook API. Пожалуйста, поделитесь своими мыслями в разделе комментариев ниже.

Источник записи: artisansweb.net

Этот веб-сайт использует файлы cookie для улучшения вашего опыта. Мы предполагаем, что вы согласны с этим, но вы можете отказаться, если хотите. Принимаю Подробнее