class MainPage(webapp2.RequestHandler): def get(self): # Build a new oauth handler and display authorization url to user. auth = tweepy.OAuthHandler( CONSUMER_KEY, CONSUMER_SECRET, CALLBACK, secure=True ) try: url = auth.get_authorization_url() self.response.out.write( template.render('templates/home.html', {"auth_url": url})) except tweepy.TweepError, e: # Failed to get a request token self.response.out.write( template.render('templates/error.html', {'message': e})) return # We must store the request token for later use in the callback page. request_token = OAuthToken( token_key=auth.request_token.key, token_secret=auth.request_token.secret ) request_token.put()
def authorized(provider): if provider in oauth_providers: resp = oauth_providers[provider].authorized_response() if resp is None: flash('Authorization failed.') else: raw_token = resp.get(oauth_response_keys[provider]) session['oauth_token'] = raw_token token = OAuthToken.query.filter_by(provider=provider, token=raw_token).first() if token is None: user = current_user if current_user.is_authenticated else User() token = OAuthToken(provider=provider, token=raw_token, user=user) db.session.add(user) db.session.add(token) db.session.commit() else: user = token.user login_user(user, True) return redirect(request.args.get('next') or url_for('index')) else: return abort(404)