Esempio n. 1
0
def index(request):
    
    log = logging.getLogger('test')
    vars = {}
    #if not request.facebook.check_session(request):
    print 'test'
     
    """
    info = pyFacebook.users.getInfo([pyFacebook.uid], ['name', 'birthday',
    'affiliations', 'sex'])[0]
    print 'Your Name:     ', info['name']
    print 'Your Birthday: ', info['birthday']
    print 'Your Gender:   ', info['sex']

    """
        
    fb_service = FacebookService()
    fb = fb_service.getFacebookSession(request)
    friend_ids = fb.friends.get()
    info = fb.users.getInfo(friend_ids, ['name', 'pic'])
    vars["info"] = info
    uid = fb.users.getLoggedInUser()
    #uid = fb.uid
    log.debug("USER ID: " + str(uid))
    
    # YOU CAN DO THIS
    #fb.notifications.send(to_ids=[uid, friend_ids[0]], notification="Hey whats up!")    
    #fbml = '<fb:profile-action url="http://www.pollstruck.com/">Voted on some poll</fb:profile-action>'
    fbml = "par voted on this shit!!!!!"
    setit = fb.profile.setFBML(fbml, uid, fbml, '', '', fbml)
    
    log.debug("GET FBML: " + str(fb.profile.getFBML()))
    log.debug("FB SET: " + str(setit))
    
    #bundle = fb.feed.registerTemplateBundle(one_line_story_templates=["{*actor*} just voted on some poll on Pollstruck."] )
    #log.debug("REGISTER TEMPLATE BUNDLE: " + str(bundle))
    
    #fb.feed.publishUserAction(template_bundle_id=0, story_size=1)
    #fb.feed.publishStoryToUser(title="testing 123", body="This is a body")

    # CANT DO THESE
    #fb.users.setStatus(status='is updating his status from a secret place.', clear=False, uid=uid)
    #fb.feed.publishActionOfUser(title="testing 123", body="This is a body")
    #fb.feed.publishStoryToUser(title="Testing 123", body="testing body")        
    #fb.stream.publish(message='Testing 123')


    return base.render(request=request, template="test.html", vars=vars)

    
Esempio n. 2
0
def facebook_connect(request):
    next = request.GET.get("next", None)
    vars = {}
    form = FacebookConnectForm()
    vars["form"] = form
    
    log = logging.getLogger('facebook_connect')
    request.session['session_key'] = request.COOKIES.get(settings.FACEBOOK_API_KEY + '_session_key')
    request.session['uid'] = request.COOKIES.get(settings.FACEBOOK_API_KEY + '_uid')
    log.debug("session key: " + str(request.session['session_key'])) 
    log.debug("uid: " + str(request.session['uid'])) 
    fb = FacebookService().getFacebookSession(request)
    if not fb:
        log.critical("Facebook Service did not initialize")
        return HttpResponseRedirect(fb.get_login_url())
    
    vars["fb"] = fb    
    uid = fb.users.getLoggedInUser()
    uid = int(uid)
    log.debug("user id: " + str(uid))
        
    try:
        data = UserData.objects.get(facebook_id=uid)      #@UndefinedVariable
        # user already has facebook connected to an account
        # just log them in and redirect them        
        user = User.objects.get(id=data.user.id)
        log.debug("User already exists...")
        if not request.user.is_authenticated():
            user = auth.authenticate(username=user.username, password=FacebookService().getUserPassword(uid))
            try:            
                auth.login(request, user)
            except NotImplementedError:
                # user already had a pollstruck account with a diff password
                vars["login_block"] = True
                vars["no_facebook"] = True
                vars["form"] = LoginForm()
                return base.render(request=request, template="user/facebook_connect.html", vars=vars)            
        if next:
            return HttpResponseRedirect(next)
        return HttpResponseRedirect("/profile/%s/" % user.username)
    except UserData.DoesNotExist:      #@UndefinedVariable
        
        if request.user.is_authenticated() and request.user.userdata_set.get(user=request.user).facebook_id == None:
            log.debug("linking accounts")
            # user has pollstruck account already but no facebook
            # link their account to facebook automatically
            us = UserService(user=request.user)
            data = us.getUserData()
            data.facebook_id = uid 
            data.save()
            if next:
                return HttpResponseRedirect(next)
            return HttpResponseRedirect('/profile/%s/' % request.user.username)
        
        
    # they are good to go
    if request.method == 'POST':
        form = FacebookConnectForm(request.POST)
        vars["form"] = form
        if form.is_valid():
            # create a user for the facebook user
            username = form.cleaned_data["username"]
            email = form.cleaned_data["email"]
            if User.objects.filter(username=username).count() > 0:                
                vars["user_error"] = "That username exists"
                return base.render(request=request, template="user/facebook_connect.html", vars=vars)
            if User.objects.filter(email=email).count() > 0:
                vars["email_error"] = "That email exists"
                return base.render(request=request, template="user/facebook_connect.html", vars=vars)
                
            us = UserService()
            user = us.createUser(username=username, email=email, password=FacebookService().getUserPassword(uid))            
            auth.login(request, user)
            data = us.getUserData()
            data.facebook_id = uid
            # default all *new* incoming facebook users to use their facebook pic
            data.use_profile_pic = False 
            data.save()            
            if next:
                return HttpResponseRedirect(next)
            return HttpResponseRedirect('/')
    else:
        pass

    return base.render(request=request, template="user/facebook_connect.html", vars=vars)
Esempio n. 3
0
def facebook_connect(request):
    next = request.GET.get("next", None)
    vars = {}
    form = FacebookConnectForm()
    vars["form"] = form

    log = logging.getLogger('facebook_connect')
    request.session['session_key'] = request.COOKIES.get(
        settings.FACEBOOK_API_KEY + '_session_key')
    request.session['uid'] = request.COOKIES.get(settings.FACEBOOK_API_KEY +
                                                 '_uid')
    log.debug("session key: " + str(request.session['session_key']))
    log.debug("uid: " + str(request.session['uid']))
    fb = FacebookService().getFacebookSession(request)
    if not fb:
        log.critical("Facebook Service did not initialize")
        return HttpResponseRedirect(fb.get_login_url())

    vars["fb"] = fb
    uid = fb.users.getLoggedInUser()
    uid = int(uid)
    log.debug("user id: " + str(uid))

    try:
        data = UserData.objects.get(facebook_id=uid)  #@UndefinedVariable
        # user already has facebook connected to an account
        # just log them in and redirect them
        user = User.objects.get(id=data.user.id)
        log.debug("User already exists...")
        if not request.user.is_authenticated():
            user = auth.authenticate(
                username=user.username,
                password=FacebookService().getUserPassword(uid))
            try:
                auth.login(request, user)
            except NotImplementedError:
                # user already had a pollstruck account with a diff password
                vars["login_block"] = True
                vars["no_facebook"] = True
                vars["form"] = LoginForm()
                return base.render(request=request,
                                   template="user/facebook_connect.html",
                                   vars=vars)
        if next:
            return HttpResponseRedirect(next)
        return HttpResponseRedirect("/profile/%s/" % user.username)
    except UserData.DoesNotExist:  #@UndefinedVariable

        if request.user.is_authenticated() and request.user.userdata_set.get(
                user=request.user).facebook_id == None:
            log.debug("linking accounts")
            # user has pollstruck account already but no facebook
            # link their account to facebook automatically
            us = UserService(user=request.user)
            data = us.getUserData()
            data.facebook_id = uid
            data.save()
            if next:
                return HttpResponseRedirect(next)
            return HttpResponseRedirect('/profile/%s/' % request.user.username)

    # they are good to go
    if request.method == 'POST':
        form = FacebookConnectForm(request.POST)
        vars["form"] = form
        if form.is_valid():
            # create a user for the facebook user
            username = form.cleaned_data["username"]
            email = form.cleaned_data["email"]
            if User.objects.filter(username=username).count() > 0:
                vars["user_error"] = "That username exists"
                return base.render(request=request,
                                   template="user/facebook_connect.html",
                                   vars=vars)
            if User.objects.filter(email=email).count() > 0:
                vars["email_error"] = "That email exists"
                return base.render(request=request,
                                   template="user/facebook_connect.html",
                                   vars=vars)

            us = UserService()
            user = us.createUser(
                username=username,
                email=email,
                password=FacebookService().getUserPassword(uid))
            auth.login(request, user)
            data = us.getUserData()
            data.facebook_id = uid
            # default all *new* incoming facebook users to use their facebook pic
            data.use_profile_pic = False
            data.save()
            if next:
                return HttpResponseRedirect(next)
            return HttpResponseRedirect('/')
    else:
        pass

    return base.render(request=request,
                       template="user/facebook_connect.html",
                       vars=vars)