An extension app for django-social-auth
or 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
- django-social-auth>=0.7.10 and all its dependencies https://github.com/omab/django-social-auth.git
To use it with django-allauth
- django-allauth>=0.8.3 and all its dependencies https://github.com/pennersr/django-allauth
Back-end dependencies
- 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
- Vkontakte
There are 3 ways to install this app
pip install django-social-friends-finder
or build from the source.
python setup.py install
or add social_friends_finder
to your path
Add 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 "/"
Go to /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.
lizrice
vden
mike-grayhat
See CHANGES.txt
file for history