문제

App-Engine-Patch 및 Pyfacebook을 사용하여 Facebook 앱을 작성하려고합니다. 각 도구와 함께 제공되는 예제 외에는 아무것도 사용하고 있으며 어떤 이유로 작동하지 않습니다.

여기에 수용된 응답에 설명 된대로 두 가지를 결합했습니다.Facebook, Django 및 Google App Engine

앱 엔진-패치는 잘 작동하는 것처럼 보이지만 @facebook.require_login ()을 사용하려고 할 때 GAE의 로그에서 이것을 얻습니다.

Exception in request:
Traceback (most recent call last):
  File "/base/data/home/apps/app-name/1.339079629847560090/common/zip-packages/django-1.1.zip/django/core/handlers/base.py", line 92, in get_response
    response = callback(request, *callback_args, **callback_kwargs)
  File "/base/data/home/apps/app-name/1.339079629847560090/facebook/djangofb/__init__.py", line 87, in newview
    if not fb.check_session(request):
  File "/base/data/home/apps/app-name/1.339079629847560090/facebook/__init__.py", line 1293, in check_session
    self.session_key_expires = int(params['expires'])
ValueError: invalid literal for int() with base 10: 'None'

@facebook.require_login ()로 장식하는 시점에 관계없이 이것은 행복합니다.

나는 두 프로젝트의 최신작을 사용하고 있으며 왜 그것이 작동하지 않는지 전혀 모른다.

시간 내 주셔서 감사합니다.

업데이트: 나는 pyfacebook에 대한 QuickFix를 만들었지 만 실에 다시 넣는 것을 잊었습니다.

지금도 대답으로, 그것이 유일한 방법 인 것 같습니다.

Facebook/__ init__.py 라인 1292+를 변경하면 다음과 같습니다.

    if params.get('expires'):
        self.session_key_expires = int(params['expires'])

이에:

    if params.get('expires'):
        if params['expires'] == 'None':
            params['expires'] = 0   
        self.session_key_expires = int(params['expires'])

그것은 효과가 있지만 해킹이며 어쩌면 더 우아하게 할 수 있지만 작동합니다. Pyfacebook Devs를이 스레드에 가리키면 더 나은 솔루션을 가질 것입니다.

도움이 되었습니까?

해결책 2

Facebook/__ init__.py 라인 1292+를 변경하면 다음과 같습니다.

    if params.get('expires'):
        self.session_key_expires = int(params['expires'])

이에:

    if params.get('expires'):
        if params['expires'] == 'None':
            params['expires'] = 0   
        self.session_key_expires = int(params['expires'])

그것은 효과가 있지만 해킹이며 어쩌면 더 우아하게 할 수 있지만 작동합니다.

다른 팁

Pyfacebook의 데코레이터를 사용해서는 안됩니다 @facebook.require_login() Facebook-Connect와 함께 Pyfacebook을 사용할 때. 데코레이터는 로그인되지 않은 경우 사용자를 Facebook 사이트로 리디렉션하기 때문에 Facebook 응용 프로그램에 사용되어야하지만 로그인하지 않은 경우 사이트의 로그인 페이지로 사용자를 리디렉션하려고합니다.

누군가가 Djangofb Middleware와 함께 Facebook-Connect 및 Pyfacebook에 로그인되어 있는지 확인하려면 request.fb.check_session(request). 만약에 check_session True를 반환하고 유효한 세션이 있습니다. False를 반환하면 사용자를 로그인 페이지로 리디렉션하여 해당 페이지에 배치 한 Facebook Connect 로그인 버튼을 클릭 할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top