Я начал взламывать функцию для извлечения данных FB через мой сайт с помощью PHP, но мог помочь с некоторыми этапами повторной аутентификации.
Пока у меня это есть, чтобы посетитель мог пройти аутентификацию через FB и получить свои данные. Моя следующая задача - попытаться заставить повторные посещения работать без повторной аутентификации.
Текущий план
Для этого я сохраняю токен доступа, полученный при первом посещении (в MySQL). Когда посетитель возвращается, я извлекаю этот токен доступа из базы данных и, используя функцию cURL, пытаюсь получить контент, используя URL-адрес, например ...
$graph_url = "https://graph.facebook.com/me/home?date_format=U&limit=40" . "access_token=" . $access_token;
Затем я проверяю возвращенное содержимое на наличие ошибок. При необходимости я отправляю браузер посетителей обратно в Facebook для аутентификации по URL-адресу, подобному следующему ...
$dialog_url = "http://www.facebook.com/dialog/oauth?client_id=" . $app_id . "&redirect_uri=" . $my_url . "&state=" . $_SESSION['state'] ;
(Я понимаю, что URL, используемый для первоначальной аутентификации , должен быть одинаковым при первом посещении и любых последующих, так что теперь у меня есть все переключатели в одном скрипте.)
Затем возвращается код (или токен запроса). Используя этот код, я могу затем использовать другую функцию cURL, чтобы попытаться получить новый токен доступа, используя этот новый токен запроса, используя URL-адрес, подобный следующему ...
$token_url = "https://graph.facebook.com/oauth/access_token?" . "client_id=" . $app_id . "&redirect_uri=" . $my_url . "&client_secret=" . $app_secret . "&code=" . $code;
Затем в теле страницы возвращается новый токен доступа, и я могу взять его, обновить локальную версию базы данных MySQL и выполнить дальнейшие запросы графа FB (используя $ graph_url выше).
Проблема
Похоже, FB возвращает мне один и тот же токен доступа при каждом вызове. В настоящее время я думаю У меня есть запись кода и что я неправильно понял поток FB / Oauth (но я, конечно, могу ошибаться!).
Так что мои вопросы ...
(1) Возможно / правильно ли для FB возвращать один и тот же токен доступа (возможно, на определенный период)?
(2) Должен ли я использовать другой / другой URL или параметры для звонков, которые я описал выше?
(3) Может кто-нибудь указать мне пример сценария (с использованием PHP PHP SDK или нет), который делает подобные вещи?
(4) Любые другие указатели, советы и т. Д.?
Я не признаюсь, что являюсь экспертом во всем этом, но я работаю над этим уже несколько недель и искал различные ресурсы для примеров, но, очевидно, где-то упускаю суть.
Заранее спасибо.
Пит.