2013-03-25 28 views
0

我已經花了Django的一段時間包望着對Facebook的集成選項可笑量。我希望有人能夠縮小我想要做的選擇。我希望能夠通過python訪問API並執行各種任務。主要任務現在是這樣的:使用Facebook登錄,然後發出信號來創建USERPROFILE

我需要從餅乾用戶的Facebook的電子郵件,然後用它來創建,而其他信息將被存儲在本地配置文件。如果有人這樣做的好例子,或者如果一個特定的模塊有好的文檔就足夠了。

編輯:另外請注意 - 我不希望使用登記。我希望在用戶使用FB登錄時創建配置文件。

回答

1

Facebook的:http://catherinetenajeros.blogspot.com/2013/03/facebook-login.html

def get_profile(request, token=None): 
    args = { 
     'client_id': settings.FACEBOOK_APP_ID, 
     'client_secret': settings.FACEBOOK_APP_SECRET, 
     'redirect_uri': request.build_absolute_uri(reverse('pets:fb_callback')), 
     'code': token, 
    } 

    target = urllib.urlopen('https://graph.facebook.com/oauth/access_token?' + urllib.urlencode(args)).read() 
    response = cgi.parse_qs(target) 
    access_token = response['access_token'][-1] 

    return access_token 



def fb_login(request): 
    args = { 
     'client_id': settings.FACEBOOK_APP_ID, 
     'scope': settings.FACEBOOK_SCOPE, 
     'redirect_uri': request.build_absolute_uri(reverse('app_name:fb_callback')), 
    } 
    return HttpResponseRedirect('https://www.facebook.com/dialog/oauth?' + urllib.urlencode(args)) 



def fb_callback(request): 
    access_token = get_profile(request, request.GET.get('code')) 
    fb_profile = urllib.urlopen('https://graph.facebook.com/me?access_token={0}'.format(access_token)) 
    fb_profile = json.load(fb_profile) 

    fb_username = fb_profile.get('username', fb_profile['email'].split('@')[0]) 
    fb_id = fb_profile.id 
    fb_email = fb_profile.email 

    [.........] 
相關問題