Пример #1
0
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
Пример #2
0
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
Пример #3
0
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))
Пример #4
0
    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"
Пример #5
0
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)
Пример #6
0
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))
Пример #7
0
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))
Пример #8
0
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)
Пример #9
0
 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)
Пример #10
0
 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)
Пример #11
0
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>'
Пример #12
0
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)
Пример #13
0
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))
Пример #14
0
    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)
Пример #15
0
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)
Пример #16
0
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)
Пример #17
0
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)
Пример #18
0
    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)
Пример #19
0
    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))
Пример #21
0
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)
Пример #22
0
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.'