Example #1
0
def oauth_return(request):
    if 'request_token' not in request.session:
        return redirect('dash.views.oauth_login')

    req_token = oauth.OAuthToken.from_string(request.session['request_token'])
    if req_token.key != request.GET.get('oauth_token', 'no-token'):
        del request.session['request_token']
        return redirect('dash.views.oauth_login')

    twitter = OAuthApi(CONSUMER_KEY, CONSUMER_SECRET, req_token)
    acc_token = twitter.getAccessToken()

    request.session['access_token'] = acc_token.to_string()
    auth_user = authenticate(access_token=acc_token)

    if auth_user:
        login(request, auth_user)
    else:
        del request.session['access_token']
        del request.session['request_token']
        return HttpResponse("Unable to authenticate you!")

    print "User: %s" % auth_user
    print "request.user: %s" % request.user
    print "is_auth: %s" % request.user.is_authenticated()
    return redirect('dash.views.home')
    def generate(self):
        # get the bitly information
        self.getValueFromUser('BITLY_USER', "bit.ly username: "******"api key from 'http://bit.ly/a/account': ")

        # get the twitter information
        from oauthtwitter import OAuthApi
        twitter = OAuthApi(self.__APP_KEY, self.__APP_SECRET)
        temp_creds = twitter.getRequestToken()
        print "visit '%s' and write the pin:" \
            % twitter.getAuthorizationURL(temp_creds)
        oauth_verifier = sys.stdin.readline().strip()
        access_token = twitter.getAccessToken(temp_creds, oauth_verifier)
        config['TWIT_TOKEN'] = access_token['oauth_token']
        config['TWIT_SECRET'] = access_token['oauth_token_secret']

        # get the svn information
        self.getValueFromUser('SVN_FS_ROOT', "Root directory for svn: ",
                              '/svn/')
        self.getValueFromUser('SVN_TRAC_FORMAT',
                              "Format for trac svn urls: ",
                              "http://trac.edgewall.org/changeset/%d")

        # write out the configuration
        handle = open(filename, 'w')
        keys = self.__config__.keys()
        keys.sort()
        for key in keys:
            handle.write("%s='%s'\n" % (key, config[key]))
        handle.write("def normalizeUser(user):\n")
        handle.write("    return user\n")
        pphandle.close()
Example #3
0
	def finalize_handshake( self, request ):
		twitter = OAuthApi( TWITTER_KEY, TWITTER_SECRET, request.session[ 'request_token' ] )
		request.session[ 'access_token' ] = twitter.getAccessToken()
		twitter = OAuthApi( TWITTER_KEY, TWITTER_SECRET, request.session[ 'access_token' ] )
		user_info = twitter.GetUserInfo()
		request.session[ 'twitter_info' ] = user_info
		return request		
Example #4
0
def _do_finish(request):
    # TODO: refactor this out -- should be in a util class or on the model
    # TODO: add check for this, redirect if not found
    try:
        request_token = request.session['twitter_request_token']
        oauth = OAuthApi(settings.TWITTER['CONSUMER_KEY'], settings.TWITTER['CONSUMER_SECRET'], request_token)
        access_token = oauth.getAccessToken()

        twitter = OAuthApi(settings.TWITTER['CONSUMER_KEY'], settings.TWITTER['CONSUMER_SECRET'], access_token)
        user_info = twitter.GetUserInfo()

        default_account = AuthorizedAccount.objects.default_account()

        s = Seeder(
            twitter_id = user_info.id,
            twitter_username = user_info.screen_name,
            authorized_for = default_account
        )
        s.set_expires_on_in_days(request.session['duration'])
        s.save()

        Token.objects.create(
            seeder = s,
            oauth_token = access_token.key,
            oauth_token_secret = access_token.secret
        )
    except HTTPError:
        pass
Example #5
0
    def get_profile_from_callback(self, request):
        """Extract the access token and profile details from OAuth callback"""
        request_token = request.session.get('twitter_request_token', None)
        if not request_token: return None

        token = oauth.OAuthToken.from_string(request_token)
        if token.key != request.GET.get('oauth_token', 'no-token'):
            return HttpResponse(status=400)

        twitter = OAuthApi(self.consumer_key, self.consumer_secret, token)
        access_token = twitter.getAccessToken()

        twitter = oauthtwitter.OAuthApi(self.consumer_key, 
                self.consumer_secret, access_token)
        try:
            profile = twitter.GetUserInfo()
        except:
            return None

        return {
            'access_token': access_token.to_string(),
            'id': profile.id,
            'username': profile.screen_name,
            'fullname': profile.name,
            'email': '',
        }
Example #6
0
File: views.py Project: mitnk/mc
def callback(request):
    req_token = oauth.Token.from_string(request.session.get('request_token'))
    api = OAuthApi(settings.CONSUMER_KEY, settings.CONSUMER_SECRET, req_token.key, req_token.secret)
    access_token = api.getAccessToken() 
    request.session["access_token"] = access_token.to_string()
    del request.session["request_token"]
    return HttpResponseRedirect(get_root_path() + "/")
Example #7
0
def get_access_token(window):
    auth_api = OAuthApi(CONSUMER_KEY, CONSUMER_SECRET)
    request_token = auth_api.getRequestToken()
    authorization_url = auth_api.getAuthorizationURL(request_token)

    webbrowser.open(authorization_url)
    auth_api = OAuthApi(CONSUMER_KEY, CONSUMER_SECRET, request_token)

    dialog = gtk.Dialog("Enter PIN", window, gtk.DIALOG_MODAL, (gtk.STOCK_OK, gtk.RESPONSE_OK, gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL))
    entry = gtk.Entry()
    dialog.vbox.pack_start(entry)
    entry.show()
    response = dialog.run()
    dialog.hide()
    
    if response == gtk.RESPONSE_OK:
        pin = entry.get_text()

        try:
            access_token = auth_api.getAccessToken(pin)
        except HTTPError:
            access_token = None

        return access_token

    else:
        return None
Example #8
0
def Callback(request):
    """docstring for Callback"""
    verifier=request.GET.get('oauth_verifier',None)
    request_token=request.session['request_token']
    twitter=OAuthApi(CONSUMER_KEY,CONSUMER_SECRET,request_token)
    # twitter=OAuthApi(CONSUMER_KEY,CONSUMER_SECRET)
    # access_token=twitter.getAccessToken(request_token,verifier)
    access_token=twitter.getAccessToken()
    # api=t.Api(CONSUMER_KEY,CONSUMER_SECRET,access_token['oauth_token'],access_token['oauth_token_secret'])
    twitter=OAuthApi(CONSUMER_KEY,CONSUMER_SECRET,access_token)
    # user=api.GetUserInfo()
    user=twitter.GetUserInfo()
    twitter_auth=UserMeta(user=request.user,key="oauth",value=1)
    twitter_auth.save()
    # twitter_access_token_key=UserMeta(user=request.user,key="access_token_key",value=access_token['oauth_token'])
    # twitter_access_token_key.save()
    # twitter_access_token_secret=UserMeta(user=request.user,key="access_token_secret",value=access_token['oauth_token_secret'])
    # twitter_access_token_secret.save()
    twitter_access_token_string=UserMeta(user=request.user,key="twitter_access_token_string",value=access_token.to_string())
    twitter_access_token_string.save()
    twitter_id=UserMeta(user=request.user,key="twitter_id",value=user.id)
    twitter_id.save()
    twitter_name=UserMeta(user=request.user,key="twitter_name",value=user.name)
    twitter_name.save()
    twitter_screen_name=UserMeta(user=request.user,key="twitter_screen_name",value=user.screen_name)
    twitter_screen_name.save()
    twitter_description=UserMeta(user=request.user,key="twitter_description",value=user.description)
    twitter_description.save()
    twitter_profile_image_url=UserMeta(user=request.user,key="twitter_profile_image_url",value=user.profile_image_url)
    twitter_profile_image_url.save()
    return HttpResponseRedirect("/setting")
Example #9
0
    def get(self):
        # get req token from DB
        token = self.request.get("oauth_token")
        req_token = fetcher.get_req_token_by_oauth_token(token)
        if not req_token:
            self.redirect('/oauth/twitter/signin')
            return
        
        # model to object
        req_token_obj = oauth.OAuthToken(req_token.token, req_token.secret)
        return_url = req_token.return_url
        
        # get access token
        twit = OAuthApi(access_token=req_token_obj)
        try:
            access_token = twit.getAccessToken()
        except DownloadError:
            self.redirect_error(msg="twitter is over capacity")
            return
            
        token = access_token.key
        secret = access_token.secret
        # delete OAuthToken
        fetcher.delete_req_token_by_model(req_token)
        
        # get user info 
        try:
            twit = OAuthApi(access_token=access_token)
            user = twit.GetUserInfo()
        except DownloadError:
            self.redirect_error(msg="twitter is over capacity")
            return
        

        # add user 
        user_model = fetcher.set_user(twit_id=str(user.id),
                                      twit_name=user.name,
                                      twit_screen_name=user.screen_name,
                                      twit_img_url=user.profile_image_url)
        
        
        # add session
        self.new_session(user_model, token, secret)        
        
        # redirect to home
        if not return_url:
            return_url = '/' 
        self.redirect(return_url)
Example #10
0
def get_user_tokens(app_key, app_secret_key):
    if not os.path.isfile("../terminitter.oauth"):  # no user tokens found, create some
        twitter = OAuthApi(app_key, app_secret_key)
        temp_credentials = twitter.getRequestToken()

        print(twitter.getAuthorizationURL(temp_credentials))
        oauth_verifier = raw_input("Go the the URL above, and paste the PIN here: ")
        tokens = twitter.getAccessToken(temp_credentials, oauth_verifier)

        oauthf = open("../terminitter.oauth", "w")
        oauthf.write(tokens["oauth_token"] + "\n" + tokens["oauth_token_secret"])
        oauthf.close()
        return [access_token["oauth_token"], access_token["oauth_token_secret"]]
    else:  # read user tokens from file
        oauthf = open("../terminitter.oauth", "r")
        oauth_tokens = oauthf.read().splitlines()
        return [oauth_tokens[0], oauth_tokens[1]]
Example #11
0
def twitter_return(request):
    request_token = request.session.get('request_token', None)

    # If there is no request_token for session,
    #    means we didn't redirect user to twitter
    if not request_token:
        # Redirect the user to the login page,
        # So the user can click on the sign-in with twitter button
        return HttpResponse("We didn't redirect you to twitter...")

    token = oauth.OAuthToken.from_string(request_token)

    # If the token from session and token from twitter does not match
    #   means something bad happened to tokens
    if token.key != request.GET.get('oauth_token', 'no-token'):
        del request.session['request_token']
        # Redirect the user to the login page
        return HttpResponse("Something wrong! Tokens do not match...")

    twitter = OAuthApi(CONSUMER_KEY, CONSUMER_SECRET, token)
    try:
        fr = twitter.GetFriendsTimeline()
    except HTTPError as e:
        return HttpResponse(str(e))
    access_token = twitter.getAccessToken()
    request.session['access_token'] = access_token.to_string()
    auth_user = authenticate(access_token=access_token)

    # if user is authenticated then login user
    if auth_user:
        login(request, auth_user)
    else:
        # We were not able to authenticate user
        # Redirect to login page
        del request.session['access_token']
        del request.session['request_token']
        return HttpResponse("Unable to authenticate you!")
    # authentication was successful, use is now logged in
#    foo = twitter.GetFollowers()
#    return HttpResponse("You are logged in %s" % twitter.GetFriends())
#    return HttpResponse("You are logged in" + len(foo))
    import string
    return HttpResponse("You are logged in %s" % twitter.GetPublicTimeline())
Example #12
0
def Callback(request):
    """docstring for Callback"""
    verifier = request.GET.get('oauth_verifier', None)
    request_token = request.session['request_token']
    twitter = OAuthApi(CONSUMER_KEY, CONSUMER_SECRET, request_token)
    # twitter=OAuthApi(CONSUMER_KEY,CONSUMER_SECRET)
    # access_token=twitter.getAccessToken(request_token,verifier)
    access_token = twitter.getAccessToken()
    # api=t.Api(CONSUMER_KEY,CONSUMER_SECRET,access_token['oauth_token'],access_token['oauth_token_secret'])
    twitter = OAuthApi(CONSUMER_KEY, CONSUMER_SECRET, access_token)
    # user=api.GetUserInfo()
    user = twitter.GetUserInfo()
    twitter_auth = UserMeta(user=request.user, key="oauth", value=1)
    twitter_auth.save()
    # twitter_access_token_key=UserMeta(user=request.user,key="access_token_key",value=access_token['oauth_token'])
    # twitter_access_token_key.save()
    # twitter_access_token_secret=UserMeta(user=request.user,key="access_token_secret",value=access_token['oauth_token_secret'])
    # twitter_access_token_secret.save()
    twitter_access_token_string = UserMeta(user=request.user,
                                           key="twitter_access_token_string",
                                           value=access_token.to_string())
    twitter_access_token_string.save()
    twitter_id = UserMeta(user=request.user, key="twitter_id", value=user.id)
    twitter_id.save()
    twitter_name = UserMeta(user=request.user,
                            key="twitter_name",
                            value=user.name)
    twitter_name.save()
    twitter_screen_name = UserMeta(user=request.user,
                                   key="twitter_screen_name",
                                   value=user.screen_name)
    twitter_screen_name.save()
    twitter_description = UserMeta(user=request.user,
                                   key="twitter_description",
                                   value=user.description)
    twitter_description.save()
    twitter_profile_image_url = UserMeta(user=request.user,
                                         key="twitter_profile_image_url",
                                         value=user.profile_image_url)
    twitter_profile_image_url.save()
    return HttpResponseRedirect("/setting")
Example #13
0
class OauthAccess():  
  
    CONSUMER_KEY = "UsGVAZvCxNiZsO7eKkSZzA"  
    CONSUMER_SECRET = "M3lOLh3w9tsgEPG423EhPSkHobGHfinXR2Ju4lxkc"  
    ACCESS_TOKEN_URL = 'https://twitter.com/oauth/access_token'  
  
    mPin = ""  
    mOauthRequestToken = ""  
    mOauthAccessToken = ""  
    mUser = twitter.User  
    mTwitterApi = ""  
  
    def __init__(self, pOauthRequestToken, pPin):  
        self.mOauthRequestToken = pOauthRequestToken  
        self.mPin = pPin  
  
    def getOauthAccess(self):  
        self.mTwitterApi = OAuthApi(self.CONSUMER_KEY, self.CONSUMER_SECRET, self.mOauthRequestToken)  
        self.mOauthAccessToken = self.mTwitterApi.getAccessToken(self.mPin)  
        self.mAuthenticatedTwitterInstance = OAuthApi(self.CONSUMER_KEY, self.CONSUMER_SECRET, self.mOauthAccessToken)  
        self.mUser = self.mAuthenticatedTwitterInstance.GetUserInfo() 
Example #14
0
class OauthAccess():
 
    CONSUMER_KEY = "atG3B3lZ6fOKshfiUr5FAMDER"
    CONSUMER_SECRET = "zJ52dNaHe3CHDHZahmBC7JwciUS93rFhf5pPzk79CqKZN37R1z"
    ACCESS_TOKEN_URL = 'https://twitter.com/oauth/access_token'
 
    mPin = ""
    mOauthRequestToken = ""
    mOauthAccessToken = ""
    mUser = twitter.User
    mTwitterApi = ""
 
    def __init__(self, pOauthRequestToken, pPin):
        self.mOauthRequestToken = pOauthRequestToken
        self.mPin = pPin
 
    def getOauthAccess(self):
        self.mTwitterApi = OAuthApi(self.CONSUMER_KEY, self.CONSUMER_SECRET, self.mOauthRequestToken)
        self.mOauthAccessToken = self.mTwitterApi.getAccessToken(self.mPin)
        self.mAuthenticatedTwitterInstance = OAuthApi(self.CONSUMER_KEY, self.CONSUMER_SECRET, self.mOauthAccessToken)
        self.mUser = self.mAuthenticatedTwitterInstance.GetUserInfo()
Example #15
0
class OauthAccess():
  
    CONSUMER_KEY = settings.TWITTER_CONSUMER_KEY  
    CONSUMER_SECRET = settings.TWITTER_CONSUMER_SECRET  
    ACCESS_TOKEN_URL = settings.TWITTER_ACCESS_TOKEN_URL
  
    mPin = ""
    mOauthRequestToken = ""
    mOauthAccessToken = ""
    mUser = twitter.User
    mTwitterApi = ""
  
    def __init__(self, pOauthRequestToken, pPin):
        self.mOauthRequestToken = pOauthRequestToken
        self.mPin = pPin
  
    def getOauthAccess(self):
        self.mTwitterApi = OAuthApi(self.CONSUMER_KEY, self.CONSUMER_SECRET, self.mOauthRequestToken)
        self.mOauthAccessToken = self.mTwitterApi.getAccessToken(self.mPin)
        self.mAuthenticatedTwitterInstance = OAuthApi(self.CONSUMER_KEY, self.CONSUMER_SECRET, self.mOauthAccessToken)
        self.mUser = self.mAuthenticatedTwitterInstance.GetUserInfo()
Example #16
0
    def setup(self):
        os.system('clear')

        twitter = OAuthApi(self.consumer_key, self.consumer_secret)

        # Get the temporary credentials for our next few calls
        temp_credentials = twitter.getRequestToken()

        # User pastes this into their browser to bring back a pin number
        print(twitter.getAuthorizationURL(temp_credentials))

        # Get the pin # from the user and get our permanent credentials
        oauth_verifier = raw_input('What is the PIN? ')
        access_token = twitter.getAccessToken(temp_credentials, oauth_verifier)

        self.token = access_token['oauth_token']
        self.secret = access_token['oauth_token_secret']

        self.latest = 1
        self.mention = 1

        print 'Clitwi was successfully set up.'
Example #17
0
def twitter_return(request):
    request_token = request.session.get('request_token', None)

    # If there is no request_token for session,
    #    means we didn't redirect user to twitter
    if not request_token:
        # Redirect the user to the login page,
        # So the user can click on the sign-in with twitter button
        return HttpResponse("We didn't redirect you to twitter...")

    token = oauth.OAuthToken.from_string(request_token)

    # If the token from session and token from twitter does not match
    #   means something bad happened to tokens
    if token.key != request.GET.get('oauth_token', 'no-token'):
        del request.session['request_token']
        # Redirect the user to the login page
        return HttpResponse("Something wrong! Tokens do not match...")

    twitter = OAuthApi(CONSUMER_KEY, CONSUMER_SECRET, token)
    access_token = twitter.getAccessToken()

    request.session['access_token'] = access_token.to_string()
    auth_user = authenticate(access_token=access_token)

    # if user is authenticated then login user
    if auth_user:
        login(request, auth_user)
    else:
        # We were not able to authenticate user
        # Redirect to login page
        del request.session['access_token']
        del request.session['request_token']
        return HttpResponse("Unable to authenticate you!")

    # authentication was successful, use is now logged in
    return HttpResponse("You are logged in")
Example #18
0
def twitter_return(request):
	request_token = request.session.get('request_token', None)
 
	# If there is no request_token for session,
	#    means we didn't redirect user to twitter
	if not request_token:
		# Redirect the user to the login page,
		# So the user can click on the sign-in with twitter button
		return HttpResponseRedirect('/login')
 
	token = oauth.OAuthToken.from_string(request_token)
 
	# If the token from session and token from twitter does not match
	#   means something bad happened to tokens
	if token.key != request.GET.get('oauth_token', 'no-token'):
		del request.session['request_token']
		# Redirect the user to the login page
		return HttpResponse("Something wrong! Tokens do not match...", status=500)
 
	twitter = OAuthApi(CONSUMER_KEY, CONSUMER_SECRET, token)
	access_token = twitter.getAccessToken()
 
	request.session['access_token'] = access_token.to_string()
	auth_user = authenticate(access_token=access_token)
 
	# if user is authenticated then login user
	if auth_user:
		login(request, auth_user)
	else:
		# We were not able to authenticate user
		# Redirect to login page
		del request.session['access_token']
		del request.session['request_token']
		return HttpResponse("Unable to authenticate you!")
 
	# authentication was successful, use is now logged in
	return HttpResponse("You are logged in")
def auth():
	authToken = None
	authSecret = None
	if os.path.exists('/tmp/twitter.tmp'):
		f = open('/tmp/twitter.tmp', 'r')
		authToken = f.readline().strip()
		authSecret = f.readline().strip()
		print "oauth_token: " + authToken
		print "oauth_token_secret: " + authSecret
		f.close()
	needAuth = True
	if authToken!=None and authSecret!=None:
		twitter = OAuthApi(consumerKey, consumerSecret, authToken, authSecret)
		if twitter.autorized():
			needAuth = False

	if needAuth:
		twitter = OAuthApi(consumerKey, consumerSecret)

		temp_credentials = twitter.getRequestToken()
		print temp_credentials

		print twitter.getAuthorizationURL(temp_credentials)

		oauth_verifier = raw_input('What is the PIN? ')
		access_token = twitter.getAccessToken(temp_credentials, oauth_verifier)
		print access_token

		print("oauth_token: " + access_token['oauth_token'])
		print("oauth_token_secret: " + access_token['oauth_token_secret'])

		f = open('/tmp/twitter.tmp', 'w')
		f.write('%s\n%s'%(access_token['oauth_token'], access_token['oauth_token_secret']))
		f.close()

		twitter = OAuthApi(consumerKey, consumerSecret, access_token['oauth_token'], access_token['oauth_token_secret'])
	return twitter
    def obtainAuth(self):
        twitter = OAuthApi(self.OAuthConsumerKey, self.OAuthConsumerSecret)

        # Get the temporary credentials for our next few calls
        temp_credentials = twitter.getRequestToken()

        # User pastes this into their browser to bring back a pin number
        print(twitter.getAuthorizationURL(temp_credentials))

        # Get the pin # from the user and get our permanent credentials
        oauth_verifier = raw_input('What is the PIN? ')
        access_token = twitter.getAccessToken(temp_credentials, oauth_verifier)

        self.OAuthUserToken = access_token['oauth_token']
        self.OAuthUserTokenSecret = access_token['oauth_token_secret']

        print("\n===========================")
        print("To prevent this authorization process next session, " + 
              "add the following lines to the [twitter] section of " +
              "your .trackupdaterc:")

        print("OAuthUserToken: " + self.OAuthUserToken)
        print("OAuthUserTokenSecret: " + self.OAuthUserTokenSecret)
        print("===========================\n")
Example #21
0
import iemdb
MESOSITE = iemdb.connect('mesosite', bypass=True)
mcursor = MESOSITE.cursor()

twitter = OAuthApi(config.get('twitter','consumerkey'), 
                   config.get('twitter', 'consumersecret'))

# Get the temporary credentials for our next few calls
temp_credentials = twitter.getRequestToken()

# User pastes this into their browser to bring back a pin number
print(twitter.getAuthorizationURL(temp_credentials))

# Get the pin # from the user and get our permanent credentials
oauth_verifier = raw_input('What is the PIN? ')
access_token = twitter.getAccessToken(temp_credentials, oauth_verifier)



print("oauth_token: " + access_token['oauth_token'])
print("oauth_token_secret: " + access_token['oauth_token_secret'])

botuser = raw_input("What is username?")
mcursor.execute("DELETE from oauth_tokens where username = '******'" % (botuser,))
mcursor.execute("INSERT into oauth_tokens values ('%s','%s','%s')" % (botuser, access_token['oauth_token'], access_token['oauth_token_secret']) )

mcursor.close()
MESOSITE.commit()

# Do a test API call using our new credentials
twitter = OAuthApi(config.get('twitter', 'consumerkey'), 
from oauth import oauth
from oauthtwitter import OAuthApi
import pprint

consumer_key = ""  # TODO put your consumer_key
consumer_secret = ""  # TODO put your consumer_secret

twitter = OAuthApi(consumer_key, consumer_secret)

# Get the temporary credentials for our next few calls
temp_credentials = twitter.getRequestToken()

# User pastes this into their browser to bring back a pin number
print(twitter.getAuthorizationURL(temp_credentials))

# Get the pin # from the user and get our permanent credentials
oauth_verifier = raw_input('What is the PIN? ')
access_token = twitter.getAccessToken(temp_credentials, oauth_verifier)
print("oauth_token: " + access_token['oauth_token'])
print("oauth_token_secret: " + access_token['oauth_token_secret'])
Example #23
0
    def get(self, action):
        # Depending on the action requested /admin/<action>/
        if action == 'register':

            # Register a Twitter user with the application using
            # OAuth. Works with the Option model to store the request and
            # access tokens.

            # Remove all the previous tokens matching oauth-* from the datastore.
            options = Option.all()
            options.filter('name >=', 'oauth-').filter('name <',
                                                       'oauth-' + u'\ufffd')
            options.fetch(1000)
            for option in options:
                option.delete()

            # Request an OAuth token and show the authorization URL on Twitter.
            twitter = OAuthApi(consumer_key, consumer_secret)
            credentials = twitter.getRequestToken()
            url = twitter.getAuthorizationURL(credentials)
            rendertext(self, '<a href="%s">%s</a><br />' % (url, url))
            rendertext(
                self,
                '<form action="/admin/verify/" method="GET"><input type="text" name="oauth_verifier" /><input type="submit" /></form>'
            )

            # Save the tokens to the datastore for later authentication
            oauth_token = credentials['oauth_token']
            oauth_token_secret = credentials['oauth_token_secret']

            # Record the tokens
            opt = Option(name='oauth-request-token', value=oauth_token)
            opt.put()
            opt = Option(name='oauth-request-token-secret',
                         value=oauth_token_secret)
            opt.put()

        elif action == 'verify':
            # Used to verify an initiated registration request. Request tokens should
            # by now be stored in the data store. Retrieve them and initiate a change.
            twitter = OAuthApi(consumer_key, consumer_secret)
            oauth_verifier = self.request.get('oauth_verifier')

            options = Option.all()
            options.filter('name =', 'oauth-request-token')
            oauth_token = options.get()

            options = Option.all()
            options.filter('name =', 'oauth-request-token-secret')
            oauth_token_secret = options.get()

            # Form a request and ask Twitter to exchange request tokens for access tokens using
            # an OAuth verifier (PIN code).
            credentials = {
                'oauth_token': oauth_token.value,
                'oauth_token_secret': oauth_token_secret.value,
                'oauth_callback_confirmed': 'true'
            }
            credentials = twitter.getAccessToken(credentials, oauth_verifier)

            # Record the access tokens and remove the previously stored request tokens.
            access_token = Option(name='oauth-access-token',
                                  value=credentials['oauth_token'])
            access_token_secret = Option(
                name='oauth-access-token-secret',
                value=credentials['oauth_token_secret'])

            oauth_token.delete()
            oauth_token_secret.delete()
            access_token.put()
            access_token_secret.put()

            # Tokens are now saved, getTwitterObject can be used.
            self.response.out.write("You are now registered as @%s!" %
                                    credentials['screen_name'])

        # Uses the Task Queues API
        elif action == 'cron':
            if self.request.get('task') == 'geocode':
                for i in range(2, 140, 2):
                    deferred.defer(tasks.geocode,
                                   _countdown=i,
                                   _queue='geocoding')

                rendertext(self, "Geo task added to queue")
Example #24
0
#!/usr/bin/env python

from oauthtwitter import OAuthApi
from settings import OAUTH_SETTINGS

twitter = OAuthApi(OAUTH_SETTINGS['consumer_key'], OAUTH_SETTINGS['consumer_secret'])
credenciales = twitter.getRequestToken()

print twitter.getAuthorizationURL(credenciales)

pin = input('INGRESA TU PIN: ')
access_token = twitter.getAccessToken(credenciales, pin)

print "OAuth Token: " + access_token['oauth_token']
print "OAuth Token Secret: " + access_token['oauth_token_secret']
Example #25
0
import tstatus2
from bitly_api import Connection
from oauthtwitter import OAuthApi
from twitter import Api
import oauth.oauth as oauth

C_KEY = "c1z2SA8p1EAXthvpCrYUA"
C_SECRET = "2Qh67Sf2I9iV13apPtdNXvQTwQ5NikJZRTjiQ9Gagac"
t1 = OAuthApi(C_KEY, C_SECRET)

r_token = t1.getRequestToken()
t2 = OAuthApi(C_KEY, C_SECRET, r_token)
a_token = t2.getAccessToken()
t = Api(C_KEY, C_SECRET, a_token)

b = Connection('acompa', 'R_9c2643b4c8c85a250493e90ce27a624d')
tstatus2.getHighFive(b, t, "achompas")
Example #26
0
def get_access_token(credentials,oauth_verifier):
    twitter = OAuthApi(settings.consumer_key, settings.consumer_secret)
    access_token = twitter.getAccessToken(credentials, oauth_verifier)
    return access_token
Example #27
0
def twitter_return(request):
    """
    Get the Twitter auth tokens, check them and then create all the user-related database models
    and subscribe to the pubsubhubbub server
    """
    
    logger = get_fe_logger()
    logger.info('On twitter_return')
    
    if not request.session.has_key('gprofileusername'):
        logger.debug('User doesnt have session on twitterreturn, redirecting to /')
        return HttpResponseRedirect('/')
        
    request_token = request.session.get('request_token', None)
    if not request_token:
        # Redirect the user to the login page,
        # So the user can click on the sign-in with twitter button
        logger.debug('User not sent to twitter by us on twitter_return()')
        return HttpResponse("We didn't sent you to twitter...")

    token = oauth.OAuthToken.from_string(request_token)

    # If the token from session and token from twitter does not match
    #   means something bad happened to tokens
    if token.key != request.GET.get('oauth_token', 'no-token'):
        del request.session['request_token']
        # Redirect the user to the login page
        logger.debug('Tokens doesnt match for user')
        return HttpResponse("Something wrong! Tokens do not match...")
                     

    twitter = OAuthApi(settings.CONSUMER_KEY, settings.CONSUMER_SECRET, token)
    try:
        access_token = twitter.getAccessToken()
    except HTTPError:
        logger.warning('Access denied on twitter.getAccessToken()')
        return HttpResponseRedirect('/')

    # Somewhat clumsy to create it again, but its the way oauthapi-twitter works...
    twitter = OAuthApi(settings.CONSUMER_KEY, settings.CONSUMER_SECRET, access_token)
    twuser = twitter.GetUserInfo()
    
    # Now that we have the Twitter account we can create all the user-related models
    googlename = request.session['gprofileusername']
    userhash = hashlib.sha256( settings.MD5SALT + googlename).hexdigest()
    
    # SiteUser
    siteuser = SiteUser(userhash=userhash)
    siteuser.save()
    
    # GoogleProfile
    gprofile = GoogleProfile(username=googlename, siteuser=siteuser)
    gprofile.save()
    # Initialize lastbuffread_at to created_at - 2 minutes (so we account for server time diffs)
    gprofile.lastbuffread_at = gprofile.created_at - timedelta(minutes=2)
    logger.debug('GProfile created_at : %s' % str(gprofile.created_at))
    logger.debug('GProfile lastbuff_at: %s' % str(gprofile.lastbuffread_at))
    gprofile.save()
    
    # UserSettings
    usettings = UserSettings(siteuser=siteuser)
    usettings.save()
    logger.info('Saved new SiteUser %d [%s]' % (siteuser.id, googlename))
 
    # TwitterAccount   
    twname = twuser.GetScreenName()
    twitteraccount = TwitterAccount(name=twname, token = access_token.to_string(), siteuser=siteuser)
    twitteraccount.save()
    
    # Send the ticket for subscribing to the push server
    messenger = StompMessenger()
    messenger.sendmessage('/queue/listener', 'subscribefeed__%d' % gprofile.id)

    return render_to_response("settingsstep.html", {}, RequestContext(request, {'userhash': userhash})) 
Example #28
0
	def get(self, action):
		# Depending on the action requested /admin/<action>/
		if action == 'register':
			
			# Register a Twitter user with the application using
			# OAuth. Works with the Option model to store the request and
			# access tokens.
			
			# Remove all the previous tokens matching oauth-* from the datastore.
			options = Option.all()
			options.filter('name >=', 'oauth-').filter('name <', 'oauth-' + u'\ufffd')
			options.fetch(1000)
			for option in options:
				option.delete()
			
			# Request an OAuth token and show the authorization URL on Twitter.
			twitter = OAuthApi(consumer_key, consumer_secret)
			credentials = twitter.getRequestToken()
			url = twitter.getAuthorizationURL(credentials)
			rendertext(self, '<a href="%s">%s</a><br />' % (url, url))
			rendertext(self, '<form action="/admin/verify/" method="GET"><input type="text" name="oauth_verifier" /><input type="submit" /></form>')
			
			# Save the tokens to the datastore for later authentication
			oauth_token = credentials['oauth_token']
			oauth_token_secret = credentials['oauth_token_secret']
			
			# Record the tokens
			opt = Option(name='oauth-request-token', value=oauth_token)
			opt.put()
			opt = Option(name='oauth-request-token-secret', value=oauth_token_secret)
			opt.put()
			
		elif action == 'verify':
			# Used to verify an initiated registration request. Request tokens should
			# by now be stored in the data store. Retrieve them and initiate a change.
			twitter = OAuthApi(consumer_key, consumer_secret)
			oauth_verifier = self.request.get('oauth_verifier')
			
			options = Option.all()
			options.filter('name =', 'oauth-request-token')
			oauth_token = options.get()
			
			options = Option.all()
			options.filter('name =', 'oauth-request-token-secret')
			oauth_token_secret = options.get()
			
			# Form a request and ask Twitter to exchange request tokens for access tokens using
			# an OAuth verifier (PIN code).
			credentials = {'oauth_token': oauth_token.value, 'oauth_token_secret': oauth_token_secret.value, 'oauth_callback_confirmed': 'true'}
			credentials = twitter.getAccessToken(credentials, oauth_verifier)
			
			# Record the access tokens and remove the previously stored request tokens.
			access_token = Option(name='oauth-access-token', value=credentials['oauth_token'])
			access_token_secret = Option(name='oauth-access-token-secret', value=credentials['oauth_token_secret'])
			
			oauth_token.delete()
			oauth_token_secret.delete()
			access_token.put()
			access_token_secret.put()
			
			# Tokens are now saved, getTwitterObject can be used.
			self.response.out.write("You are now registered as @%s!" % credentials['screen_name'])
		
		# Uses the Task Queues API
		elif action == 'cron':
			if self.request.get('task') == 'geocode':
				for i in range(2, 140, 2):
					deferred.defer(tasks.geocode, _countdown=i, _queue='geocoding')
				
				rendertext(self, "Geo task added to queue")