Как offline_access работать с Facebook

Я использую Facebooker с Rails для подключения своего приложения к Facebook. Я могу направить пользователя через процесс авторизации и через процесс предоставления автономного доступа к моему приложению.

Как я могу фактически получить доступ к информации в автономном режиме? Есть ли способ запросить session_key, который не истекает, который я могу использовать в более поздней точке, если пользователь не отменил разрешения для моего приложения на Facebook?

Любая помощь очень ценится. Рекомендации не обязательно должны быть рельсами.

Ответ 1

Как только вы попросите и получите доступ к автономному доступу к ключу сеанса, который вы получаете в параметрах HTTP POST из Facebook (fb_sig_session_key), не будет истечения срока действия.

Вы можете проверить, что у вас есть такой ключ, проверяя параметр fb_sig_expires, если это "0", тогда ключ сеанса не имеет срока действия.

Если у вас есть auth_token, вы можете вызвать getSession, чтобы получить ключ сеанса и проверить поле expires:

var auth = _auth.getSession(AuthToken);
string sessionKey = auth.session_key;
long uid = auth.uid;
bool expires = auth.expires > 0;

Ответ 2

Я только что сделал учебник в своем блоге с пошаговым объяснением того, как получить доступ к автономным пользовательским данным. Предполагается, что вы работаете с RoR и плагином Facebooker.

Ответ 3

EDIT: очевидно, предоставление "offline_access" по-прежнему дает вам (и будет продолжать делать) бесконечный ключ сеанса. просто сохраните этот специальный ключ и используйте его в своем вызове Status.get и т.д. см. здесь для примера кода (PHP).

http://wiki.developers.facebook.com/index.php/New_Design_User_Login:

многие вызовы API больше не требуются ключи сеанса

поэтому, если ваше приложение предоставлено offline_access, вы можете использовать вызовы API указанные здесь без session_key.

И мы меняем больше методов, чтобы вы для этого не потребуется сеансовый ключ что-то, когда пользователь отключен, как отправить уведомление.

Ответ 4

Как только вы получите доступ к автономному доступу от пользователя, трюк заключается в вызове с параметром filter_key для "сети".

В PHP это:

$feed = $facebook->api_client->stream_get($uid, '', '', '', 20, 'network', '');

Попробуй, он работает....