Facebook с PHP API — бесконечная сессия

#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, и обычно объявляют о них только там.

http://developers.facebook.com/blog/feed

Комментарии:

1. Спасибо за ваш ответ, но я прочитал это, и я не могу найти решение, используя faceook-php sdk. Мне удалось запустить бесконечную сессию с помощью flash-facebook api, но теперь мне это нужно для работы на php, вы знаете, где я могу найти какие-либо примеры кодов?