예제 #1
0
파일: db.py 프로젝트: nulld/GeekPartySite
	def accessToken(self):
		if self.session.access_token:
			# return the token (TODO: does it expire?)
			auth = OAuthHandler(self.client_id, self.client_secret);
			auth.set_access_token( self.session.access_token.key
								 , self.session.access_token.secret)

			return auth


		if self.session.request_token:
			# Exchange the request token with an authorization token.
			token = self.session.request_token
			self.session.request_token = None

			auth = OAuthHandler( self.client_id, self.client_secret )
			auth.set_request_token(token.key, token.secret)

			try:
				self.session.access_token = auth.get_access_token(self.request.vars.oauth_verifier)
			except tweepy.TweepError:

				print 'Error! Failed to get access token.'

			print self.session.access_token

			return auth

		return None
예제 #2
0
def callback(request):
    """
    Receive the Oauth token back from Twitter
    """
    verifier = request.GET.get('oauth_verifier')
    if verifier is None:
        response = HttpResponseRedirect(reverse('experiment_main'))
        return response
    oauth = OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET)
    token = request.session.get('unauthed_token_twitterexp', None)
    if token is None:
        request.session['auth_error'] = True
        return HttpResponseRedirect(ROOT_URL)

    request.session['auth_error'] = False
    # remove the request token now we don't need it
    request.session.delete('unauthed_token_twitterexp')
    oauth.set_request_token(token[0], token[1])
    # get the access token and store
    try:
        oauth.get_access_token(verifier)
    except TweepError:
        print 'Error, failed to get access token'
        request.session['auth_error'] = True
        return HttpResponseRedirect(ROOT_URL)
    request.session['access_key_twitterexp'] = oauth.access_token.key
    request.session['access_secret_twitterexp'] = oauth.access_token.secret

    api = get_api(request)
    twitter_user = api.me()

    twitter_user = add_or_update_twitter_user(twitter_user)

    experiment_user, user = get_or_add_user(twitter_user)

    user.set_password('')

    user = authenticate(username=twitter_user.twitter_id, password='')
    login(request, user)

    response = HttpResponseRedirect(reverse('experiment_start'))
    return response
예제 #3
0
파일: views.py 프로젝트: beaumartinez/rdf
def twitter_oauth_verify(request):
    redirect_url = reverse('landing')

    request_token_key = request.session.pop('request_token_key', '')
    request_token_secret = request.session.pop('request_token_secret', '')

    handler = OAuthHandler(settings.CONSUMER_KEY, settings.CONSUMER_SECRET)
    handler.set_request_token(request_token_key, request_token_secret)

    verifier = request.GET.get('oauth_verifier', '')

    try:
        handler.get_access_token(verifier)
    except TweepError:
        pass
    else:
        user = authenticate(access_token_key=handler.access_token.key, access_token_secret=handler.access_token.secret, consumer_key=settings.CONSUMER_KEY, consumer_secret=settings.CONSUMER_SECRET)
        login(request, user)

        redirect_url = request.session.pop('next', redirect_url)

    return redirect(redirect_url)