def get(self): location = self.request.get('location') refereeID = self.request.get('refereeID') if not (location and refereeID): self.write('Bad form data.') return self.session['location'] = location self.session['refereeID'] = refereeID self.redirect(facebook.get_login_url(get_facebook_id(), webapp2.uri_for('stagetwo', _full=True)))
def get(self): fb_user = None try: token = facebook.AuthenticationToken.get_authentication_token_from_code( app_id=get_facebook_id(), app_secret=get_facebook_secret(), return_url=self.request.url, ) fb_user = token.get_user() except facebook.AuthenticationError: self.session.add_flash("Oops, there appears to have been an authentication error. Please try again.") self.redirect_to('landing') #todo: save referal in cookie so that we have it at this stage. return except facebook.PermissionError: #todo: Prompt for permissions again self.session.add_flash("Looks like you didn't give us all the permissions we require. We won't be able to subscribe you.") if fb_user: existing_user = User.get_by_id(str(fb_user.id)) location = self.session.get('location') refereeID = self.session.get('refereeID') if existing_user: user = existing_user user.location = location user.put() else: email_verified = (fb_user.email != None) #emails from FB are automatically verified. user = self.createUser(fb_user, email_verified, location, refereeID) #Get these in another step of sign-up self.session['user'] = str(user.key.id()) if not self.user.email: self.redirect_to('get_email') return self.redirect_to('progress')