Skip to content

Instantly share code, notes, and snippets.

@kamotos
Created March 11, 2014 17:16
Show Gist options
  • Save kamotos/9490473 to your computer and use it in GitHub Desktop.
Save kamotos/9490473 to your computer and use it in GitHub Desktop.
Django Facebook Mixins
from django.conf import settings
from django.http import HttpResponse
from django.shortcuts import redirect
from django.utils.decorators import method_decorator
from fandjango.decorators import facebook_authorization_required
facebook_redirect_uri = 'https://www.facebook.com/pages/{page_name_id}?sk=app_{app_id}'.format(
page_name_id=settings.FACEBOOK_PAGE_NAME_ID,
app_id=settings.FACEBOOK_APPLICATION_ID
)
class LikedMixin(object):
def dispatch(self, request, *args, **kwargs):
if not request.facebook:
return redirect(facebook_redirect_uri)
if not request.facebook.signed_request.page.is_liked:
return redirect('facebook_game:like')
if kwargs is None:
kwargs = {}
return super(LikedMixin, self).dispatch(request, *args, **kwargs)
class AuthorizedAppMixin(LikedMixin):
@method_decorator(facebook_authorization_required)
def dispatch(self, request, redirect_uri=facebook_redirect_uri, *args, **kwargs):
if kwargs is None:
kwargs = {}
return super(AuthorizedAppMixin, self).dispatch(request, *args, **kwargs)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment