예제 #1
0
def invite_facebook_friends(request):
    try:
        auth = UserSocialAuth.objects.get(user=request.user,
                                          provider='facebook')
        fb = facebook_factory()
        cache_key = 'user_facebook_friends:%d:%s' % (request.user.pk,
                                                     auth.extra_data['id'])
        friends_list = cache.get(cache_key)
        invited_fb_ids = FacebookInvite.objects.filter(
            user=request.user).values_list('facebook_user_id', flat=True)
        if friends_list is None:
            friends_list = fb.get_user_friends(auth.extra_data)
            cache.set(cache_key, friends_list, 3600)
        friends_list_json = json.dumps(
            [f['id'] for f in friends_list if not f['id'] in invited_fb_ids])
    except UserSocialAuth.DoesNotExist:
        #user has not logged in via Facebook
        auth_url = reverse('socialauth_associate_begin',
                           kwargs={'backend': 'facebook'})
    except FacebookAPIError:
        #most likely user's auth token has expired
        auth_url = reverse('socialauth_begin', kwargs={'backend': 'facebook'})
    site = Site.objects.get_current()

    invite = FacebookInvite.objects.get_or_create(user=request.user,
                                                  sent=True)[0]
    return direct_to_template(request, 'invite_friends/facebook_invite.html',
                              locals())
예제 #2
0
def invite_facebook_friends(request):
	try:
		auth = UserSocialAuth.objects.get(user=request.user, provider='facebook')
		fb = facebook_factory()
		cache_key = 'user_facebook_friends:%d:%s' % (request.user.pk, auth.extra_data['id'])
		friends_list = cache.get(cache_key)
		invited_fb_ids = FacebookInvite.objects.filter(user=request.user).values_list('facebook_user_id', flat=True)
		if friends_list is None:
			friends_list = fb.get_user_friends(auth.extra_data)
			cache.set(cache_key, friends_list, 3600)
		friends_list_json = json.dumps([f['id'] for f in friends_list if not f['id'] in invited_fb_ids])
	except UserSocialAuth.DoesNotExist:
		#user has not logged in via Facebook
		auth_url = reverse('socialauth_associate_begin', kwargs={'backend': 'facebook'})
	except FacebookAPIError:
		#most likely user's auth token has expired
		auth_url = reverse('socialauth_begin', kwargs={'backend': 'facebook'})
	site = Site.objects.get_current()
	
	invite = FacebookInvite.objects.get_or_create(user=request.user, sent=True)[0]
	return direct_to_template(request, 'invite_friends/facebook_invite.html', locals())
예제 #3
0
def facebook_extra_values(sender, user, response, details, **kwargs):

    #avoid circular imports
    from invite_friends.facebook import facebook_factory, FacebookAPIError

    update_user_base_data(user, details)
    user.save()
    profile = user.get_profile()
    profile.name = user.get_full_name()

    if profile.image=='' or profile.image==DEFAULT_PROFILE_IMAGE:
        try:
            fb = facebook_factory()
            img = fb.get_profile_picture(response['access_token'], response['id'])
            if img:
                profile.image.save(*img)
        except FacebookAPIError:
            pass

    profile.save()
    if user.emailaddress_set.count()==0:
        EmailAddress.objects.get_or_create(user=user, email=user.email, primary=True)
    return True
예제 #4
0
 def setUp(self):
     self.fb = facebook_factory()
예제 #5
0
	def setUp(self):
		self.fb = facebook_factory()