Facebook с PHP API - бесконечная сессия - PullRequest
0 голосов
/ 09 июня 2011

Я просмотрел в Интернете некоторую информацию об этом, но все, что я нашел, это для SDK версии 2.XX, теперь с версией 3.0.0 он не работает.

ЧтоМне нужно получить информацию о пользователе и использовать ее в качестве сервера для публикации в любое время, не полагаясь на куки.

Есть идеи, как это сделать?Старые уроки предлагают что-то вроде этого:

$facebook->getSession()

, и на сессиях я бы получил ключи, но этот метод больше не существует.Есть идеи, как получить ключи сессии и использовать их повторно?

Спасибо!

Ответы [ 2 ]

2 голосов
/ 10 июня 2011

Если вам нужен «бесконечный» сеанс, запросите разрешение offline_access.Оттуда вам нужно будет взять access_token из сеанса и сохранить его в базе данных.

0 голосов
/ 09 июня 2011

SDK, предоставляемый Facebook для PHP, предназначен для вызова и использования, пока пользователь просматривает ваш сайт - действия, которые выполняют вызовы API Facebook без прямого участия пользователей, требуют чего-то более надежного, использующего тот же подход, но с сохраненными токенами и инициированного с помощью cronjobs или фоновых процессов.

Поток oAuth 2.0 для проверки и предоставления разрешений подробно описан в документации Facebook.

http://developers.facebook.com/docs/authentication/

Вы можете выполнить описанную здесь логику вручную, даже не используя SDK, используя стандартную библиотеку HTTP-запросов, такую ​​как CURL. В основном, это влечет за собой отправку запроса в Facebook, когда пользователь впервые пытается предоставить доступ, после чего браузер должен полностью перенаправить в диалоговое окно FB Login / permissions. Именно в этом запросе вы указываете, какие разрешения вам потребуются. Вы можете использовать параметр redirect_uri, чтобы указать это обратно на конечную точку в вашем приложении, которая затем принимает данные, которые Facebook возвращает, отправляет их обратно для токена доступа, а затем сохраняет этот окончательный токен oAuth в файл или строку базы данных, связанную с этим. пользователь.

Для описанных вами действий вам потребуется запросить разрешение offline_access при вызове URL-адреса в Facebook. При этом создается токен, который будет действителен до тех пор, пока пользователь не отменит свои разрешения в своей учетной записи Facebook с помощью интерфейса «Aps».

Подробнее об oAuth можно узнать здесь: http://oauth.net/2/

Я также настоятельно рекомендую подписаться на RSS-канал разработчиков для Facebook. Они очень регулярно делают огромные изменения в том, как они управляют своим API, и обычно только объявляют о них там.

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

...