#php #facebook #session #facebook-graph-api #infinite
#php #Facebook #сессия #facebook-graph-api #бесконечная
Вопрос:
я просмотрел в Интернете некоторую информацию об этом, но все, что я нашел, относится к SDK версии 2.X.X, теперь с версией 3.0.0 это не работает.
Что мне нужно, так это получить информацию о пользователе и использовать ее в качестве сервера для публикации в любое время, не полагаясь на cookies.
Есть идеи, как это сделать? В старых руководствах предлагается что-то вроде этого:
$facebook->getSession()
и на сессиях я бы получал ключи, но этот метод больше не существует. Есть идеи, как получить ключи сеансов и повторно использовать их?
Спасибо!
Ответ №1:
Если вам нужна «бесконечная» сессия, попросите offline_access
разрешения. Оттуда вам нужно будет взять access_token
из сеанса и сохранить его в базе данных.
Комментарии:
1. У меня есть токен доступа, теперь, где я установлю его позже, после того, как получу его из базы данных? в этом я сомневаюсь…
Ответ №2:
SDK, предоставляемый Facebook для PHP, предназначен для вызова и использования во время просмотра пользователем вашего сайта — действия, которые выполняют вызовы facebook API без непосредственного участия пользователя, требуют чего-то более надежного, использующего тот же подход, но с сохраненными токенами и инициируемого cronjobs или фоновыми процессами.
Поток OAuth 2.0 для проверки и предоставления разрешений подробно описан в документации Facebook.
http://developers.facebook.com/docs/authentication/
Вы можете выполнить описанную здесь логику вручную, даже не используя SDK, используя стандартную библиотеку HTTP-запросов, такую как CURL. В основном, что влечет за собой отправку запроса facebook, когда пользователь впервые хочет предоставить доступ, после чего браузер должен полностью перенаправить на диалоговое окно входа / разрешений FB. Именно в этом запросе вы указываете, какие разрешения вам потребуются. Вы можете использовать redirect_uri
параметр, чтобы указать это обратно на конечную точку в вашем приложении, которая затем принимает данные Facebook, возвращает их для токена доступа, а затем сохраняет этот конечный токен OAuth в файле или строке базы данных, связанной с этим пользователем.
Для действий, которые вы описали, вам нужно запросить offline_access
разрешение при вызове URL Facebook. Это генерирует токен, который будет постоянно действителен до тех пор, пока пользователь не отменит свои разрешения в своей учетной записи facebook, используя интерфейс ‘Aps’.
Вы можете узнать больше об OAuth здесь:http://oauth.net/2 /
Я также настоятельно рекомендую подписаться на RSS-канал Facebook для разработчиков. Они очень регулярно вносят огромные изменения в то, как они управляют своим API, и обычно объявляют о них только там.
Комментарии:
1. Спасибо за ваш ответ, но я прочитал это, и я не могу найти решение, используя faceook-php sdk. Мне удалось запустить бесконечную сессию с помощью flash-facebook api, но теперь мне это нужно для работы на php, вы знаете, где я могу найти какие-либо примеры кодов?