2015-05-11 21 views
1

Я пытаюсь навсегда подключить учетную запись fb к стандартной учетной записи пользователя. Пользователи будут входить в систему, используя свои собственные учетные данные для конкретного сайта, подключиться к своей учетной записи fb, а затем мы сможем сделать вызовы графиков в fb, не перезагружаясь снова с fb.Подключить учетную запись Facebook к пользователю Django

В настоящее время я делаю это:

{% load socialaccount %} 
{% providers_media_js %} 
<a href ="{% provider_login_url "facebook" method='js_sdk' process='connect' %}">Facebook connect</a> 

Это только сохраняет краткосрочный лексем в базе данных и каждый раз, когда пользователь входит из фб это аннулируется, и они должны повторной аутентификации.

Мой вопрос:

Как получить долгосрочный токен?

Поддерживается ли это все-auth из коробки?

Спасибо!

ответ

1

Решено. Вот функция, которая получит длинный токен из кратковременного токена, который вы можете сохранить в таблице SocialToken, а затем использовать со всеми последующими вызовами FB.api:

def get_long_life_token(short_life_token): 

    import urllib 
    import re 

    url = "https://graph.facebook.com/oauth/access_token?client_id=<id>&client_secret=<secret>&grant_type=fb_exchange_token&fb_exchange_token=" + str(short_life_token) 

    try: 
     data = urllib.urlopen(url).read() 
     data = re.search('access_token=(.+?)&expires=', data).group(1) 
     return data 
    except Exception as e: 
     raise e 
Смежные вопросы