2009-03-05 2 views
10

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

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

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

ответ

0

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

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

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

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

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

+0

Благодарим за информацию о функциях, не требующих ключа сеанса. К сожалению, для методов, которые мне нужны, требуется session_key, срок действия которых не истекает. – Mattew

+0

Какие методы это будет? –

+0

Метод User.getSession. Я пытаюсь получить их поток обновлений статуса. – Mattew

2

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

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

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

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

Привет, Марк - спасибо за информацию. Вы знаете, изменится ли ключ сеанса после того, как вам предоставлен автономный доступ? В Facebooker ключ сеанса, который я возвращаю, кажется таким же, как и тот, с которого я начинал, и у него есть срок действия. Мэтт – Mattew

0

После того, как вы получите автономный доступ разрешение от пользователя, хитрость заключается в том, чтобы позвонить с filter_key параметр «сеть».

В PHP, это:

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

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

1

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

Смежные вопросы