문제

Facebook Connect FBML 버튼을 통해 로그인 한 후에는 세션 세부 정보를 검색하고 사용하여 가능합니까? pyfacebook? Python을 통해 로그인을 해고 한 것과 같은 방식으로 Auth.getSession ()을 사용할 수 있습니까?

기본적으로 아래 예제에서 단계를 Raw_Input ()로 바꾸는 단계가 가능한 경우 운동하려고합니다.

import facebook

API_KEY     =   'xxx'
SECRET_KEY  =   'xxx'

facebook = facebook.Facebook(API_KEY, SECRET_KEY)

facebook.auth.createToken()

facebook.login()

# Login to the window, then press enter
print 'After logging in, press enter...'
raw_input()

# This is where FBML button should get me

facebook.auth.getSession()
print 'Session Key:   ', facebook.session_key
print 'Your UID:      ', facebook.uid
도움이 되었습니까?

해결책

사용 Facebook 사용자 확인 개발자 Wiki의 페이지 나는 pyfacebook을 추적했습니다. getsession, validate_signature 그리고 GetLoggedInuser 방법 및 pyfacebook의 example.py for django에있는 코드와 함께 :

if 'session_key' in request.session and 'uid' in request.session:
    fb.session_key = request.session['session_key']
    fb.uid = request.session['uid']
else:

    try:
        fb.auth_token = request.GET['auth_token']
    except KeyError:
        # Send user to the Facebook to login
        return HttpResponseRedirect(fb.get_login_url())

    # getSession sets the session_key and uid
    # Store these in the cookie so we don't have to get them again
    fb.auth.getSession()
    request.session['session_key'] = fb.session_key
    request.session['uid'] = fb.uid

FBML 버튼을 사용하여 ZOPE3 작업에 대한 다음의 빠른 테스트를 받았습니다.

import facebook

API_KEY     =   'your_api_key'
SECRET_KEY  =   'your_secret_key'

fb = odb.facebook.Facebook(API_KEY, SECRET_KEY)

fb_uid = self.request[API_KEY+'_user']
fb_session_key = self.request[API_KEY+'_session_key']
fb_ss = self.request[API_KEY+'_ss']
fb_signature = self.request[API_KEY] #no suffix for signature

fb.session_key = fb_session_key
fb.uid = fb_uid

fb.friends.get() # Results in list of friends

다른 팁

이것이 당신의 질문에 답변하는지 확실하지 않습니다.

먼저 Pyfacebook Middleware를 설치했습니다 (어떤 견해로도 요청. facebook을 호출 할 수 있음) :

'facebook.djangofb.FacebookMiddleware'

그런 다음 Facebook Connect 버튼과 함께보기를 설정하고 승인 완료시 필요한 위치를 리디렉션하기위한 적절한 설정을 설정합니다.

Facebook Connect 로그인 완료보기에서 요청 변수를 request.facebook.check_session ()로 전달하여 Facebook Connect 쿠키를 사용하여 Facebook에 인증합니다. true를 반환하면 객체가 데이터를 검색하는 데 사용할 준비가되었습니다.

def myview(request):    
    fb = request.facebook    
    ready_to_rock = fb.check_session(request)
    if ready_to_rock:
        user_info = fb.users.getInfo([fb.uid],['first_name','last_name'])
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top