def oauth_url_dance( consumer_key, consumer_secret, callback_url, oauth_verifier, pre_verify_token_filename, verified_token_filename ): # Verification happens in two stages... # 1) If we haven't done a pre-verification yet... Then we get credentials # from Twitter that will be used to sign our redirect to them, find the # redirect, and instruct the Javascript that called us to do the redirect. if not os.path.exists(CREDS_PRE_VERIFIY): twitter = Twitter(auth=OAuth("", "", consumer_key, consumer_secret), format="", api_version=None) oauth_token, oauth_token_secret = parse_oauth_tokens(twitter.oauth.request_token(oauth_callback=callback_url)) write_token_file(pre_verify_token_filename, oauth_token, oauth_token_secret) oauth_url = "https://api.twitter.com/oauth/authorize?" + urllib.urlencode({"oauth_token": oauth_token}) return oauth_url # 2) We've done pre-verification, hopefully the user has authed us in # Twitter and we've been redirected to. Check we are and ask for the # permanent tokens. oauth_token, oauth_token_secret = read_token_file(CREDS_PRE_VERIFIY) twitter = Twitter( auth=OAuth(oauth_token, oauth_token_secret, consumer_key, consumer_secret), format="", api_version=None ) oauth_token, oauth_token_secret = parse_oauth_tokens(twitter.oauth.access_token(oauth_verifier=oauth_verifier)) write_token_file(verified_token_filename, oauth_token, oauth_token_secret) return oauth_token, oauth_token_secret
def oauth_url_dance(consumer_key, consumer_secret, callback_url, oauth_verifier, pre_verify_token_filename, verified_token_filename): # Verification happens in two stages... # 1) If we haven't done a pre-verification yet... Then we get credentials from Twitter # that will be used to sign our redirect to them, find the redirect, and instruct the Javascript # that called us to do the redirect. if not os.path.exists(CREDS_PRE_VERIFIY): twitter = Twitter(auth=OAuth('', '', consumer_key, consumer_secret), format='', api_version=None) oauth_token, oauth_token_secret = parse_oauth_tokens( twitter.oauth.request_token(oauth_callback=callback_url)) write_token_file(pre_verify_token_filename, oauth_token, oauth_token_secret) oauth_url = 'https://api.twitter.com/oauth/authorize?' + urllib.urlencode( {'oauth_token': oauth_token}) return oauth_url # 2) We've done pre-verification, hopefully the user has authed us in Twitter # and we've been redirected to. Check we are and ask for the permanent tokens. oauth_token, oauth_token_secret = read_token_file(CREDS_PRE_VERIFIY) twitter = Twitter(auth=OAuth(oauth_token, oauth_token_secret, consumer_key, consumer_secret), format='', api_version=None) oauth_token, oauth_token_secret = parse_oauth_tokens( twitter.oauth.access_token(oauth_verifier=oauth_verifier)) write_token_file(verified_token_filename, oauth_token, oauth_token_secret) return oauth_token, oauth_token_secret
def oauth_helper(request): oauth_verifier = request.GET.get('oauth_verifier') # Pick back up credentials from ipynb_oauth_dance oauth_token, oauth_token_secret = read_token_file(OAUTH_FILE) _twitter = twitter.Twitter( auth=twitter.OAuth( oauth_token, oauth_token_secret, CONSUMER_KEY, CONSUMER_SECRET), format='', api_version=None) oauth_token, oauth_token_secret = parse_oauth_tokens( _twitter.oauth.access_token(oauth_verifier=oauth_verifier, oauth_token=oauth_token, oauth_consumer_key=CONSUMER_KEY)) # Save tokens to TwitterUser model tuser, created = TwitterUser.objects.get_or_create( OAUTH_TOKEN = oauth_token, OAUTH_TOKEN_SECRET = oauth_token_secret ) django_login(request, tuser.user) return HttpResponseRedirect(request.build_absolute_uri(REDIRECT_URL_AFTER_AUTH))
def post(self, pin=None): args = parser.parse_args() oauth_verifier = args['pin'] twitter = Twitter(auth=OAuth( session['oauth_token'], session['oauth_token_secret'], application.config.get('TWITTER_CONSUMER_KEY'), application.config.get('TWITTER_CONSUMER_SECRET')), format='', api_version=None) oauth_token, oauth_token_secret = parse_oauth_tokens( twitter.oauth.access_token(oauth_verifier=oauth_verifier)) conf = TwitterConfiguration.objects(oauth_token=oauth_token) if len(conf) > 0: return "already in db" configuration = TwitterConfiguration(user=session["user_id"], oauth_token=oauth_token, oauth_secret=oauth_token_secret) configuration.save() socket.send_json({ "action": "register_new_job", "id": str(configuration.id) }) return "token successfully retrieve"
def oauth_helper(): oauth_verifier = request.args.get('oauth_verifier') # Pick back up credentials from ipynb_oauth_dance oauth_token, oauth_token_secret = read_token_file(OAUTH_FILE) _twitter = twitter.Twitter(auth=twitter.OAuth(oauth_token, oauth_token_secret, CONSUMER_KEY, CONSUMER_SECRET), format='', api_version=None) oauth_token, oauth_token_secret = parse_oauth_tokens( _twitter.oauth.access_token(oauth_verifier=oauth_verifier)) # This web server only needs to service one request, so shut it down shutdown_after_request = request.environ.get('werkzeug.server.shutdown') shutdown_after_request() # Write out the final credentials that can be picked up after the blocking # call to webserver.run() below. write_token_file(OAUTH_FILE, oauth_token, oauth_token_secret) return "%s %s written to %s" % (oauth_token, oauth_token_secret, OAUTH_FILE)
def get_user_oauth_tokens(oauth_token, oauth_token_secret, oauth_verifier): ''' a partir dos tokens temporarios + o verificador, recupera os tokens permanentes ''' _twitter_oauth = twitter.OAuth(oauth_token, oauth_token_secret, CONSUMER_KEY, CONSUMER_SECRET) _twitter = twitter.Twitter(auth=_twitter_oauth, format='', api_version=None) return parse_oauth_tokens(_twitter.oauth.access_token(oauth_verifier=oauth_verifier))
def ipynb_oauth_dance(): _twitter = twitter.Twitter(auth=twitter.OAuth("", "", CONSUMER_KEY, CONSUMER_SECRET), format="", api_version=None) oauth_token, oauth_token_secret = parse_oauth_tokens(_twitter.oauth.request_token(oauth_callback=oauth_callback)) # Need to write these interim values out to a file to pick up on the callback # from Twitter that is handled by the web server in /oauth_helper write_token_file(OAUTH_FILE, oauth_token, oauth_token_secret) oauth_url = "http://api.twitter.com/oauth/authorize?oauth_token=" + oauth_token # Tap the browser's native capabilities to access the web server through a new # window to get user authorization display(JS("window.open('%s')" % oauth_url))
def index(request): twitter1 = twitter.Twitter(auth=twitter.OAuth('', '', consumer_key, consumer_secret),format='', api_version=None) oauth_token, oauth_token_secret = parse_oauth_tokens(twitter1.oauth.request_token()) oauth_url = ('https://api.twitter.com/oauth/authorize?oauth_token=' + oauth_token) request.session['oauth_token']=oauth_token request.session['oauth_token_secret']=oauth_token_secret fopen=open('jsp1.js','rb') a=fopen.readline() b=a.replace('myvar',oauth_token) return HttpResponse(b)
def get(self, request, force_login=False, *args, **kwargs): callback = self.build_callback() oauth = OAuth('', '', self.get_consumer_key(), self.get_consumer_secret()) api = Twitter(auth=oauth, secure=True, format='', api_version=None) (oauth.token, oauth.token_secret) = parse_oauth_tokens( api.oauth.request_token(oauth_callback=callback)) request.session['request_token'] = (oauth.token, oauth.token_secret) url = ('https://api.twitter.com/oauth/authenticate?oauth_token=' '%s' % oauth.token) if force_login: url += '&force_login=true' return redirect(url)
def get(self, request, force_login=False, *args, **kwargs): callback = self.build_callback() oauth = OAuth('', '', self.get_consumer_key(), self.get_consumer_secret()) api = Twitter(auth=oauth, secure=True, format='', api_version=None) (oauth.token, oauth.token_secret) = parse_oauth_tokens(api.oauth.request_token(oauth_callback=callback)) request.session['request_token'] = (oauth.token, oauth.token_secret) url = ('https://api.twitter.com/oauth/authenticate?oauth_token=' '%s' % oauth.token) if force_login: url += '&force_login=true' return redirect(url)
def twitter_login(): twitter = Twitter( auth=OAuth('', '', app.config['TWITTER_CONSUMER_KEY'], app.config['TWITTER_CONSUMER_SECRET'] ), format='', api_version=None) session['oauth_token'], session['oauth_token_secret'] = parse_oauth_tokens( twitter.oauth.request_token( oauth_callback=app.config['TWITTER_CALLBACK']) ) oauth_url = ('https://api.twitter.com/oauth/authorize?oauth_token=' + session['oauth_token']) return '<a href="' + oauth_url + '">Login with Twitter</a>'
def oauth_helper(): oauth_verifier = request.args.get("oauth_verifier") # Pick back up credentials from ipynb_oauth_dance oauth_token, oauth_token_secret = read_token_file(OAUTH_FILE) _twitter = twitter.Twitter( auth=twitter.OAuth(oauth_token, oauth_token_secret, CONSUMER_KEY, CONSUMER_SECRET), format="", api_version=None ) oauth_token, oauth_token_secret = parse_oauth_tokens(_twitter.oauth.access_token(oauth_verifier=oauth_verifier)) # This web server only needs to service one request, so shut it down shutdown_after_request = request.environ.get("werkzeug.server.shutdown") shutdown_after_request() # Write out the final credentials that can be picked up after the following # blocking call to webserver.run(). write_token_file(OAUTH_FILE, oauth_token, oauth_token_secret) return "%s %s written to %s" % (oauth_token, oauth_token_secret, OAUTH_FILE)
def py_oauth_dance(): _twitter=twitter.Twitter(auth=twitter.OAuth('','',CONSUMER_KEY, CONSUMET_SECRET), format='', api_version=None) oauth_token, oauth_token_secret = parse_oauth_tokens(_twitter.oauth.request_token(oauth_callback=oauth_callback)) # Se nececitan escribir estos valores en un archivo para de ahi recojer la # llamada de Twitter que es manejada del web server en /oauth_helper write_token_file(OAUTH_FILE,oauth_token, oauth_token_secret) oauth_url=('http://api.twitter.com/oauth/authorize?oauth_token='+oauth_token) #Utilizamos el browser para abrir una nueva ventana y asi accesar al web #server y obtener la autorizacion del usuario display(JS("windows.open('%s')" % oauth_url))
def get(self): twitter = Twitter(auth=OAuth( '', '', application.config.get('TWITTER_CONSUMER_KEY'), application.config.get('TWITTER_CONSUMER_SECRET')), format='', api_version=None) # get authorisation token oauth_token, oauth_token_secret = parse_oauth_tokens( twitter.oauth.request_token(oauth_callback="oob")) session['oauth_token'] = oauth_token session['oauth_token_secret'] = oauth_token_secret oauth_url = 'https://api.twitter.com/oauth/authorize?oauth_token=%s' % oauth_token return redirect(oauth_url)
def oauth_helper(): oauth_verifier=request.args.get('oauth_verifier') #Recojer credenciales de respaldo oauth_token, oauth_token_secret=read_token_file(OAUTH_FILE) _twitter=twitter.Twitter(auth=twitter.OAuth(oauth_token, oauth_token_secret, CONSUMER_KEY, CONSUMET_SECRET), format='', api_version=None) oauth_token, oauth_token_secret=parse_oauth_tokens(_twitter.oauth.access_token(oauth_verifier=oauth_verifier)) #Este web server solo necesita servir una peticion, asi que se apaga shutdown_after_request=request.environ.get('werkzeug.server.shutdown') shutdown_after_request() #Se escriben las credenciales write_token_file(OAUTH_FILE, oauth_token, oauth_token_secret) return "%s %s se escribio en %s" % (oauth_token, oauth_token_secret, OAUTH_FILE)
def oauth_dance(request): _twitter = twitter.Twitter( auth=twitter.OAuth('', '', CONSUMER_KEY, CONSUMER_SECRET), format='', api_version=None) oauth_token, oauth_token_secret = parse_oauth_tokens( _twitter.oauth.request_token(oauth_callback=OAUTH_CALLBACK)) print(oauth_token, oauth_token_secret, "token and secret from twitter") # Need to write these interim values out to a file to pick up on the callback # from Twitter that is handled by the web server in /oauth_helper write_token_file(OAUTH_FILE, oauth_token, oauth_token_secret) oauth_url = (OAUTH_URL + oauth_token) # Redirect to twitter URL for user authorization. return HttpResponseRedirect(oauth_url)
def ipynb_oauth_dance(): _twitter = twitter.Twitter( auth=twitter.OAuth('', '', CONSUMER_KEY, CONSUMER_SECRET), format='', api_version=None) oauth_token, oauth_token_secret = parse_oauth_tokens( _twitter.oauth.request_token(oauth_callback=oauth_callback)) # Need to write these interim values out to a file to pick up on the callback from Twitter # that is handled by the web server in /oauth_helper write_token_file(OAUTH_FILE, oauth_token, oauth_token_secret) oauth_url = ('http://api.twitter.com/oauth/authorize?oauth_token=' + oauth_token) oauth_url = oauth_url.replace("http", "https") print oauth_url # Tap the browser's native capabilities to access the web server through a new window to get # user authorization webbrowser.open_new(oauth_url)
def get(self, request, *args, **kwargs): verifier = request.GET.get('oauth_verifier', None) if verifier is None: return self.error('No verifier code') if not 'request_token' in request.session: return self.error('No request token found in the session') request_token = request.session.pop('request_token') request.session.modified = True oauth = OAuth(request_token[0], request_token[1], self.get_consumer_key(), self.get_consumer_secret()) api = Twitter(auth=oauth, secure=True, format='', api_version=None) try: (oauth.token, oauth.token_secret) = parse_oauth_tokens( api.oauth.access_token(oauth_verifier=verifier)) except TwitterError: return self.error('Failed to get an access token') return self.success(oauth)
def get(self, request, *args, **kwargs): verifier = request.GET.get('oauth_verifier', None) if verifier is None: return self.error('No verifier code') if not 'request_token' in request.session: return self.error('No request token found in the session') request_token = request.session.pop('request_token') request.session.modified = True oauth = OAuth(request_token[0], request_token[1], self.get_consumer_key(), self.get_consumer_secret()) api = Twitter(auth=oauth, secure=True, format='', api_version=None) try: (oauth.token, oauth.token_secret) = parse_oauth_tokens(api.oauth.access_token(oauth_verifier=verifier)) except TwitterError: return self.error('Failed to get an access token') return self.success(oauth)
def ipynb_oauth_dance(): # with proxy_support,first you must set the goagent proxy_support = urllib2.ProxyHandler({'https':'https://127.0.0.1:8087'}) opener=urllib2.build_opener(proxy_support,urllib2.HTTPHandler) urllib2.install_opener(opener) _twitter = twitter.Twitter( auth=twitter.OAuth('', '', CONSUMER_KEY, CONSUMER_SECRET), format='', api_version=None) oauth_token, oauth_token_secret = parse_oauth_tokens( _twitter.oauth.request_token(oauth_callback=oauth_callback)) # Need to write these interim values out to a file to pick up on the callback # from Twitter that is handled by the web server in /oauth_helper write_token_file(OAUTH_FILE, oauth_token, oauth_token_secret) oauth_url = ('http://api.twitter.com/oauth/authorize?oauth_token=' + oauth_token) # Tap the browser's native capabilities to access the web server through a new # window to get user authorization display(JS("window.open('%s')" % oauth_url))
def mrcrawler_oauth_dance(): ''' Este método abre uma aba solicitando que o usuário autorize o Mr. Crawler a acessar sua conta do twitter (login) ''' browser = request.user_agent.browser host = request.host _twitter_oauth = twitter.OAuth('', '', CONSUMER_KEY, CONSUMER_SECRET) _twitter = twitter.Twitter(auth=_twitter_oauth, format='', api_version=None) oauth_callback = "http://" + host + url_for('oauth_helper') oauth_token, oauth_token_secret = parse_oauth_tokens( _twitter.oauth.request_token(oauth_callback=oauth_callback)) # criando um usuário temporário user = User(oauth_token, oauth_token_secret, None, browser) db_session.add(user) db_session.commit() return (TWITTER_URL_AUTHORIZE + oauth_token)
def twitter_authorize(): twitter = Twitter( auth=OAuth(session['oauth_token'], session['oauth_token_secret'], app.config['TWITTER_CONSUMER_KEY'], app.config['TWITTER_CONSUMER_SECRET'] ), format='', api_version=None) oauth_token, oauth_token_secret = parse_oauth_tokens( twitter.oauth.access_token( oauth_verifier=request.args.get('oauth_verifier')) ) if oauth_token and oauth_token_secret: t = Twitter( auth=OAuth(oauth_token, oauth_token_secret, app.config['TWITTER_CONSUMER_KEY'], app.config['TWITTER_CONSUMER_SECRET']) ) user_info = t.account.settings() user = TwitterAccount.query\ .filter_by(username=user_info['screen_name'])\ .first() if user: user.oauth_token = oauth_token user.oauth_secret = oauth_token_secret db.session.commit() return '@' + user_info['screen_name'] + ' was updated.' else: new_user = TwitterAccount( username=user_info['screen_name'], oauth_token=oauth_token, oauth_secret=oauth_token_secret ) db.session.add(new_user) db.session.commit() return '@' + user_info['screen_name'] + ' was added.' else: return 'Twitter Account was not added.'