コード例 #1
0
ファイル: crybbviral.py プロジェクト: kp368/crybbsignup
    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)))
コード例 #2
0
ファイル: crybbviral.py プロジェクト: kp368/crybbsignup
    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')