2014-02-26 76 views
1

我試圖從django-social-auth獲取來自Facebook的用戶個人資料圖片。用Django社交認證從Facebook獲取用戶uid

我在另一篇文章中看到,我應該從Facebook獲得用戶uid才能訪問個人資料圖片。 我如何獲得uid?

從django-social-auth我剛剛安裝了它,並配置了基本的東西登錄/登出與Django的註冊。

這是我的HTML登錄: 登錄與FB

如何我可以做一個「家」的視圖的請求用戶在Facebook和獲得UID?

我發現這個在Django的socail-auth的文檔:

def social_associate_and_load_data(backend, details, response, uid, user, 
            social_user=None, *args, **kwargs): 
    """ 
    The combination of associate_user and load_extra_data functions 
    of django-social-auth. The reason for combining these two pipeline 
    functions is decreasing the number of database visits. 
    """ 
    extra_data = backend.extra_data(user, uid, response, details) 
    created = False 
    if not social_user and user: 
     social_user, created = UserSocialAuth.objects.get_or_create(
      user_id=user.id, 
      provider=backend.name, 
      uid=uid, 
      defaults={'extra_data': extra_data}) 

    if not created and extra_data and social_user.extra_data != extra_data: 
     social_user.extra_data.update(extra_data) 
     social_user.save() 
    return {'social_user': social_user} 

我應該在哪裏把它放在我的Django應用程序?在views.py中?如果是的話,我如何才能激活視圖,如果我只是通過社交認證網站登錄。

+0

Facebook的'uid'存儲在'UserSocialAuth'例如,你可以通過做'user.social_auth.get得到它(商= 'Facebook的')。uid'。 – omab

+0

謝謝!從未注意到它 –

+0

順便說一句,django-social-auth庫已被棄用。請查看他們的文檔以獲取更多細節。 –

回答

3

的Facebook uid存儲在UserSocialAuth例如,你可以通過做得到它

user.social_auth.get(provider='facebook').uid