FBML Pyfacebook 앱에서 연장 권한이 필요합니다
-
19-09-2019 - |
문제
FBML 캔버스 페이지를 가져 오려고 노력하고 있습니다. 수행원 Facebook의 문서 Question_Permissions 인수를 요구하기 위해 _Login을 사용해 보았습니다. 즉, 나는 다음과 같은 pyfacebook require_login 데코레이터를 사용하려고 노력했습니다.
@facebook.require_login(required_permissions='publish_stream')
에서와 같이 :
@decorator_from_middleware(FacebookMiddleware)
@facebook.require_login(required_permissions='publish_stream')
def canvas(request, template):
...
요청 Pyfacebook 기반 Facebook Iframe 앱에서 확장 된 권한 논의되었습니다. 요청 FBML 앱에서 확장 된 권한 ~도. 나의 목표는 필요하다 FBML 앱에서 확장 된 권한. 내가 뭔가를 놓치고 있습니까 아니면 누구든지 해결 방법을 제안 할 수 있습니까?
감사.
해결책
오른쪽, pyfacebook
아직 지원하지 않습니다 required_permissions
~을 위한 login
, 그러나 당신은 전화 할 수 있습니다 (또는 오히려 리디렉션) authorize
수동으로. 방금 내 목적을 위해 다음 데코레이터를 썼습니다.
def require_permissions(*names):
"""Require extended permissions.
XXX: in theory, the facebook.require_login() decorator should support
this, but doesn't in pyfacebook yet."""
def decorator(fn):
required_perms = set(names)
def wrapper(request, *args, **kwargs):
fb = request.facebook
perms = set() if fb.ext_perms is None \
else set(fb.ext_perms.split(','))
if not required_perms.issubset(perms):
missing = required_perms.difference(perms)
url = fb.get_ext_perm_url(','.join(missing),
next='%s%s' % (fb.get_app_url(), request.path[1:]))
print url
return fb.redirect(url)
return fn(request, *args, **kwargs)
return wrapper
return decorator
가치를 조정해야 할 수도 있습니다 next
통과 할 때 get_ext_perm_url
, 그러나 이것은 그렇지 않으면 괜찮을 것입니다 (나를 위해 작동합니다). 사용 예 :
@facebook.require_login()
@facebook.require_add()
@require_permissions('email', 'offline_access')
def index(request):
# ...
제휴하지 않습니다 StackOverflow