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)
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)
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)