An extension app for
django-allauth that fetches your friends from different social-networks.
It displays matched friends so you can suggest your users to add them as friend or follow them.
To use it with
- django-social-auth>=0.7.10 and all its dependencies https://github.com/omab/django-social-auth.git
To use it with
- django-allauth>=0.8.3 and all its dependencies https://github.com/pennersr/django-allauth
- python-twitter>=0.8.2 for twitter backend http://code.google.com/p/python-twitter/
- facebook-sdk for facebook backend https://github.com/pythonforfacebook/facebook-sdk.git
There are 3 ways to install this app
pip install django-social-friends-finder
or build from the source.
python setup.py install
social_friends_finder to your path
Usage and Configuration
social_friends_finder to your APPS list in your settings file
INSTALLED_APPS = ( ... "social_friends_finder", )
Add urls to your url config
urlpatterns = patterns('', ... url(r'^find-friends/', include('social_friends_finder.urls')), )
Have a look at following settings:
SOCIAL_FRIENDS_USING_ALLAUTH: True if you use `django-allauth`. Default is False SF_REDIRECT_IF_NO_SOCIAL_ACCOUNT_FOUND: True if no social account found. Default is True REDIRECT_URL: The url to redirect if above setting is used. Default is "/"
/find-friends/list/ on your browser.
Currently there are facebook and twitter backends are available. Please help to implement new backends.
Implementing backend classes are easy. Just create a class inherits from
BaseFriendsProvider and implement two of its methods.
See backends module for example implementations
The software design for back-ends needs to be tweaked a little. Encapsulating the allauth and social-auth behaviors in different subclasses would help. Also a common interface for backends to load them silently is crucial. Now if there is a missing backend, we raise an error. Factory class that loads them is also very ugly.
I needed to implement this app for a real-world project with an impossible deadline, and now no time to refactor it. So if you can spend some time on the above issues, that'd be awesome.
CHANGES.txt file for history