Need help with django-facebook?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

pythonforfacebook
124 Stars 37 Forks 63 Commits 2 Opened issues

Description

Django integration for Facebook

Services available

!
?

Need anything else?

Contributors list

Facebook integration for your Django website

This library is deprecated. For Facebook integration, please use facebook-sdk. For questions about integrating Facebook and Django, please visit the PythonforFacebook Google Group.

Installation:

Simply add

django_facebook
to your INSTALLED_APPS and configure the following settings:
FACEBOOK_APP_ID = ''
FACEBOOK_SECRET_KEY = ''

Optionally set default permissions to request, e.g: ['email', 'user_about_me']

FACEBOOK_SCOPE = []

And for local debugging, use one of the debug middlewares and set:

FACEBOOK_DEBUG_TOKEN = '' FACEBOOK_DEBUG_UID = '' FACEBOOK_DEBUG_COOKIE = '' FACEBOOK_DEBUG_SIGNEDREQ = ''

Optionally throw exceptions instead of returning HTTP errors on signed request issues

FACEBOOK_RAISE_SR_EXCEPTIONS = True

Templates:

A few helpers for using the Javascript SDK can be enabled by adding this to your base template in the

 section:
{% load facebook %}
{% facebook_init %}
    {% block facebook_code %}{% endblock %}
{% endfacebook %}

And this should be added just before your

 tag:
{% facebook_load %}

The

facebook_load
template tag inserts the code required to asynchronously load the facebook javascript SDK. The
facebook_init
tag calls
FB.init
with your configured application settings. It is best to put your facebook related javascript into the
facebook_code
region so that it can be called by the asynchronous handler.

You may find the

facebook_scope
tag useful, which takes the setting in FACEBOOK_SCOPE and prints the extended permissions out in a comma-separated list.

A helpful debugging page to view the status of your facebook login can be enabled by adding this to your url configuration:

(r'^facebook_debug/', direct_to_template, {'template':'facebook_debug.html'}),  

Once this is in place you are ready to start with the facebook javascript SDK!

This module also provides all of the tools necessary for working with facebook on the backend:

Middleware:

This provides seamless access to the Facebook Graph via request object.

If a user accesses your site with: - a valid cookie (Javascript SDK), or - a valid

signed_request
parameter (Facebook Canvas App), then your views will have access to request.facebook.graph and you can begin querying the graph immediately. For example, to get the users friends:
def friends(request):
  if request.facebook:
    friends = request.facebook.graph.get_connections('me', 'friends')

To use the middleware, simply add this to your MIDDLEWARECLASSES: 'djangofacebook.middleware.FacebookMiddleware'

FacebookDebugCookieMiddleware
allows you to set a cookie in your settings file and use this to simulate facebook logins offline.

FacebookDebugTokenMiddleware
allows you to set a uid and access_token to force facebook graph availability.

FacebookDebugCanvasMiddleware
allows you to set a signed_request to mimic a page being loaded as a canvas inside Facebook.

Authentication:

This provides seamless integration with the Django user system.

If a user accesses your site with a valid facebook cookie, a user account is automatically created or retrieved based on the facebook UID.

To use the backend, add this to your AUTHENTICATIONBACKENDS: 'djangofacebook.auth.FacebookBackend'

To automatically populate your User and Profile models with facebook data, use: 'django_facebook.auth.FacebookProfileBackend'

Don't forget to include the default backend if you want to use standard logins for users as well: 'django.contrib.auth.backends.ModelBackend'

Decorators:

@facebook_required
is a decorator which ensures the user is currently logged in with facebook and has access to the facebook graph. It is a replacement for
@login_required
if you are not using the facebook authentication backend.

@canvas_only
is a decorater to ensure the view is being loaded with a valid
signed_request
via Facebook Canvas. If signedrequest is not found, the decorator will return a HTTP 400. If signedrequest is found but the user has not authorised, the decorator will redirect the user to authorise.

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.