def _get_twitter_access(self, username):
     auth = OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET)
     url = auth.get_authorization_url()
     print 'Go here: %s and enter the corresponding PIN' % url
     pin = raw_input('PIN:')
     auth.get_access_token(pin)
     return (auth.access_token.key, auth.access_token.secret)
Exemple #2
0
class SanchanOAuthHandler():
	def __init__(self, config):
		self.config = config
		self.keys = self.config.OAuthKeys()
		self.oauth = OAuthHandler(self.keys['consumer_key'],
				self.keys['consumer_secret'],
				secure = True
				)
		self.oauth.set_access_token(self.keys['access_token_key'], self.keys['access_token_secret'])

	def authenticate(self):
		return self.oauth

	def request(self):
		print "Authorize this app via this URL: "
		print self.oauth.get_authorization_url()
		pincode = raw_input('Then, input the proposed PIN: ')
		try:
			self.oauth.get_access_token(verifier=pincode)
		except error.TweepError, e:
			print e
			print "[EMERG] Authentication error!"
			sys.exit(1)
		print "Put these access keys into your config.yml:"
		print "access_token: " + self.oauth.access_token.key
		print "access_token_secret: " + self.oauth.access_token.secret
		sys.exit(0)
Exemple #3
0
class Twit(object):
    def __init__(self,consumer_token, access_token=None):
        if not isinstance(consumer_token, Token): raise Exception("consumer_token is invalid type!")
        self.auth = OAuthHandler(consumer_token.key, consumer_token.secret)
        self.api = None
        if access_token != None and isinstance(access_token, Token):
            # ok
            self.auth.set_access_token(access_token.key, access_token.secret)
            self.api = self._get_api(self.auth)

    def _get_api(self, auth):
        return API(auth,retry_count=3,cache=tweepy.MemoryCache(timeout=60))

    def get_auth_url(self):
        return self.auth.get_authorization_url()

    def get_access_token(self, pin):
        self.auth.get_access_token(pin)
        self.api = self._get_api(self.auth)
        return Token(self.auth.access_token.key, self.auth.access_token.secret)

    @classmethod
    def get_msg_length(cls, msg):
        """
        https://dev.twitter.com/docs/api/1.1/get/help/configuration
        """
        msg = re.sub(RegexHttpUrl, "0123456789012345678901", msg)
        msg = re.sub(RegexHttpsUrl, "01234567890123456789012", msg)
        return len(msg)

    @classmethod
    def validate_msg(cls, msg):
        """
        Args:
            msg: str, 投稿するメッセージ
        Return:
            (is_valid:bool, reminder:int)
        """
        max_msg_length = 140
        is_valid = False
        msg_length = cls.get_msg_length(msg)
        reminder = 140 - msg_length
        if 0 < msg_length <= max_msg_length: is_valid = True
        return (is_valid, reminder)

    def post(self, msg):
        return self.api.update_status(status=msg)

    def verify_credentials(self, include_entities=True, skip_status=False):
        return self.api.verify_credentials(include_entities=include_entities, skip_status=skip_status)

    def get_user_timeline(self, screen_name, count=50):
        return self.api.user_timeline(screen_name=screen_name, count=count)

    def destroy_status(self, status_id):
        return self.api.destroy_status(id=status_id)
Exemple #4
0
class WTweetUser:
    def __init__(self):
        _CONSUMER_KEY = '9o4scrLHTFt7NzyVxD5Q'
        _CONSUMER_SECRET = 'xlrPmai1QgNTRQTf86inp1bzEFLgEXD7XuN5ZENKAU'
        self.__auth_handler = OAuthHandler(_CONSUMER_KEY, _CONSUMER_SECRET)
        self.__access_token = None

    def set_access_token(self, access_token):
        self.__access_token = self.__auth_handler.set_access_token(key=access_token['key'], secret=access_token['secret'])

    def get_auth_handler(self):
        return self.__auth_handler

    def logout(self):
        with loadfile('w') as f:
            f.truncate()
            f.close()
        print 'logout successful!'

    def login(self):
        try:
            auth_url = self.__auth_handler.get_authorization_url()
            print 'give me a pin code from url: {0}'.format(auth_url)
            verifier = raw_input('enter a pin code: ').strip()
            self.__auth_handler.get_access_token(verifier=verifier)
            access_token = { 'key': self.__auth_handler.access_token.key, 'secret': self.__auth_handler.access_token.secret }

            with loadfile('w+') as f:
                f.truncate()
                f.write(JSONEncoder().encode(access_token))
                f.close()
        except TweepError as err:
            print err.__str__()

        return WTweetTimeline(self)

    def is_login(self):
        with loadfile('r') as f:
            cfg = f.readline()
            f.close()
        access_token = JSONDecoder().decode(cfg)

        if 'key' in access_token and 'secret' in access_token:
            self.set_access_token(access_token=access_token)
            return True
        else:
            return False

    def get_timeline(self):
        with loadfile('r') as f:
            cfg = f.readline()
            f.close()
        self.set_access_token(JSONDecoder().decode(cfg))
        return WTweetTimeline(self)
Exemple #5
0
def run():
    print 'Input your application info.'
    consumer_key = raw_input('Consumer Key: ')
    consumer_secret = raw_input('Consumer Secret: ')

    auth = OAuthHandler(consumer_key,
                        consumer_secret)
    print "Visit the following url and allow TweetHandler to access."
    print '>>> %s' % auth.get_authorization_url()
    print ''
    vcode = raw_input('Enter verification code: ')
    token = auth.get_access_token(vcode)
    print 'OK. You can setup TweetHander with following code.'
    print """ ----
from tweethandler import TweetHandler
import logging
th = TweetHandler('%s',
                  '%s',
                  '%s',
                  '%s')

logger = logging.getLogger()
logger.setLevel(logging.DEBUG)
th.setLevel(logging.DEBUG)
logger.addHandler(th)
logger.info('Your log message')
""" % (consumer_key, consumer_secret,
       token.key, token.secret)
Exemple #6
0
	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
Exemple #7
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
Exemple #8
0
def get_auth():
    auth = OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET)
    if not os.path.exists(CREDENTIALS_FILE):
        authorization_url = auth.get_authorization_url()
        webbrowser.open_new(authorization_url)
        pin = input('PIN: ')
        auth.get_access_token(pin)
        cred = {
            'ACCESS_TOKEN': auth.access_token,
            'ACCESS_SECRET': auth.access_token_secret
        }
        fp = open(CREDENTIALS_FILE, 'wb')
        pickle.dump(cred, fp)
        fp.close()
    else:
        fp = open(CREDENTIALS_FILE, 'rb')
        cred = pickle.load(fp)
        fp.close()
        auth.set_access_token(cred['ACCESS_TOKEN'], cred['ACCESS_SECRET'])
    return auth
def do_report(request_token, oauth_verifier, accounts, block=False):
    logger = logging.getLogger(__name__)
    if not logger.hasHandlers():
        logger.addHandler(logging.StreamHandler())
        logger.setLevel(logging.INFO)

    output = ''
    try:
        twitter_auth = OAuthHandler(settings.CONSUMER_KEY,
                                    settings.CONSUMER_SECRET)
        twitter_auth.request_token = {
            'oauth_token': request_token,
            'oauth_token_secret': oauth_verifier
        }
        twitter_auth.get_access_token(oauth_verifier)
        twitter_api = API(twitter_auth,
                          wait_on_rate_limit=True,
                          wait_on_rate_limit_notify=True,
                          retry_count=0,
                          timeout=5)
        for account_name, account_type in accounts.items():
            output += 'Reporting: ' + account_name + '\n'
            try:
                if account_type == 'user_id':
                    user = twitter_api.report_spam(user_id=account_name,
                                                   perform_block=block)
                else:
                    user = twitter_api.report_spam(screen_name=account_name,
                                                   perform_block=block)
                output += 'Reported: https://twitter.com/' + user.screen_name + '\n'
                logger.info('Reported: https://twitter.com/' +
                            user.screen_name)
            except TweepError as e:
                if e.api_code == 34:  # Account does not exist, skip
                    output += e.reason + '\n'
                else:
                    raise e
    except TweepError as e:
        output += e.reason + '\n'
    output += 'Done(' + str(datetime.now()) + ')'
    return escape(output)
Exemple #10
0
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)
def doOAuthDance(consumer_key, consumer_secret):
  # If we already have an access token saved, just use that
  if os.path.exists(ACCESS_TOKEN_PATH):
    accessFile = open(ACCESS_TOKEN_PATH, 'r')
    access_token_key = accessFile.readline().strip()
    access_token_secret = accessFile.readline().strip()
    accessFile.close()
    
    auth = OAuthHandler(consumer_key, consumer_secret)
    auth.set_access_token(access_token_key, access_token_secret)
    return auth
  
  auth = OAuthHandler(consumer_key, consumer_secret)
  
  try:
    redirect_url = auth.get_authorization_url()
  except TweepError:
    print ('Error! Failed to get request token.')
    return None
  
  print(('Get PIN from: %s' % (redirect_url)))
  webbrowser.open(redirect_url)
  
  verifier = input('Input Twitter verifier PIN:')
  
  try:
    auth.get_access_token(verifier)
  except:
    print ('Error!  Failed to get access token.')
    return None
  
  # Save the access token for later use
  accessFile = open(ACCESS_TOKEN_PATH, 'wt')
  accessFile.write('%s\n%s' % (auth.access_token.key, auth.access_token.secret))
  accessFile.close()
  
  return auth
Exemple #12
0
    def testoauth(self):
        auth = OAuthHandler(oauth_consumer_key, oauth_consumer_secret)

        # test getting access token
        auth_url = auth.get_authorization_url()
        print('Please authorize: ' + auth_url)
        verifier = raw_input('PIN: ').strip()
        self.assert_(len(verifier) > 0)
        access_token = auth.get_access_token(verifier)
        self.assert_(access_token is not None)

        # build api object test using oauth
        api = API(auth)
        s = api.update_status('test %i' % random.randint(0, 1000))
        api.destroy_status(s.id)
Exemple #13
0
    def testoauth(self):
        auth = OAuthHandler(oauth_consumer_key, oauth_consumer_secret)

        # test getting access token
        auth_url = auth.get_authorization_url()
        print('Please authorize: ' + auth_url)
        verifier = raw_input('PIN: ').strip()
        self.assert_(len(verifier) > 0)
        access_token = auth.get_access_token(verifier)
        self.assert_(access_token is not None)

        # build api object test using oauth
        api = API(auth)
        s = api.update_status('test %i' % random.randint(0, 1000))
        api.destroy_status(s.id)
Exemple #14
0
def get_auth_link_and_show_token():
    auth = OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET)
    auth.secure = True
    auth_url = auth.get_authorization_url()
    input(
        "Log in to https://twitter.com as the user you want to tweet as and hit enter."
    )
    input("Visit %s in your browser and hit enter." % auth_url)
    pin = input("What is your PIN: ")

    token = auth.get_access_token(verifier=pin)
    print(
        "\nThese are your access token and secret.\nDO NOT SHARE THEM WITH ANYONE!\n"
    )
    print("ACCESS_TOKEN\n%s\n" % token[0])
    print("ACCESS_TOKEN_SECRET\n%s\n" % token[1])
Exemple #15
0
def setup():
    '''This function gives you all the keys for the Twitter-API.
    Look in the text below to costume it with your app. Or only run it to get
    all keys for the socialpy gateway.
    The app-token are from my test app. I'm not shore if it's a god idea to let
    them now you. But so you can easily run this scrip and have all the keys you
    need for my gateway.'''

    # create your SocialPy folder if it not exists
    check(create=True)

    # Go to https://dev.twitter.com and sign up for a developer account. Then
    # create an app. This app shouldn’t have a callback url. Look in your app
    # for the tokens and use them for the OAuthHandler
    consumer_token = 'kYdbvAGXIhWGHyNKdNTssfpzE'
    consumer_secret = 'MM2EVucINNxfFEB0akTenqConUnucj9FaS4hMX1F7wEw5WDvD1'
    auth = OAuthHandler(consumer_token, consumer_secret)

    # This will open your web browser and ask you to verify for the app. If you
    # agree, they show you a pin. If your app has a callback url, they would
    # redirect you to this url and didn't show you the pin.
    try:
        redirect_url = webbrowser.open(auth.get_authorization_url())
        time.sleep(1)
    except TweepError:
        print('Error! Failed to get request token.')
        exit()

    pin = input('\nVerification pin number from twitter.com: ').strip()
    token = auth.get_access_token(verifier=pin)

    print('All the token:')
    print('ckey:', consumer_token)
    print('csecret:', consumer_secret)
    print('akey:', auth.access_token)
    print('asecret:', auth.access_token_secret)

    # create the Gateway and save the keys
    gateway = Gateway(keyfile=SOCIALPY_KEY_FILE)
    gateway['twitter'].setup(ckey=consumer_token,
                             csecret=consumer_secret,
                             akey=auth.access_token,
                             asecret=auth.access_token_secret)
    gateway.save_to_file(SOCIALPY_KEY_FILE)
    print('save the keys in your SocialPy file')
Exemple #16
0
    def testoauth(self):
        if not consumer_key or not consumer_secret:
            self.skipTest("Missing consumer key and/or secret")

        auth = OAuthHandler(consumer_key, consumer_secret)

        # test getting access token
        auth_url = auth.get_authorization_url()
        print('Please authorize: ' + auth_url)
        verifier = input('PIN: ').strip()
        self.assertTrue(len(verifier) > 0)
        access_token = auth.get_access_token(verifier)
        self.assertTrue(access_token is not None)

        # build api object test using oauth
        api = API(auth)
        s = api.update_status(f'test {random.randint(0, 1000)}')
        api.destroy_status(s.id)
Exemple #17
0
def twitter_callback(request):
    """
    Twitterからのコールバック時に呼び出される。

    :param request: リクエストオブジェクト
    :type request: django.http.HttpRequest
    :return: 遷移先を示すレスポンスオブジェクト
    :rtype: django.http.HttpResponse
    """
    # セッションからリクエストトークンを取得する
    request_token = request.session.get('request_token')
    if not request_token:
        request.session.clear()
        return HttpResponse('Unauthorized', status=401)

    # Twitterからの返却値を取得する
    oauth_token = request.GET.get('oauth_token')
    oauth_verifier = request.GET.get('oauth_verifier')

    # セッションの値とTwitterからの返却値が一致しない場合は処理を中断する
    if request_token.get('oauth_token') != oauth_token:
        request.session.clear()
        return HttpResponse('Unauthorized', status=401)

    # アクセストークンを取得する
    oauth_handler = OAuthHandler(settings.CONSUMER_KEY, settings.CONSUMER_SECRET)
    oauth_handler.request_token = request_token
    access_token = oauth_handler.get_access_token(oauth_verifier)

    # 認証処理を実行する
    authenticated_user = authenticate(access_token=access_token)
    if authenticated_user:
        login(request, authenticated_user)
    else:
        request.session.clear()
        return HttpResponse('Unauthorized', status=401)

    # ログイン後に遷移すべき画面にリダイレクトする
    url = request.session.get('next', getattr(settings, 'AFTER_LOGIN_URL', '/'))
    return HttpResponseRedirect(url)
Exemple #18
0
def get_token():
    # Get authorization information from secure file
    with open("etc/auth/auth.txt", "r") as authFile:
        consumerKey = authFile.readline().strip()
        consumerSecret = authFile.readline().strip()

    # Authenticate the twitter consumer key
    twitter_auth = OAuthHandler(consumerKey, consumerSecret)
    twitter_auth.secure = True
    authUrl = twitter_auth.get_authorization_url()

    # go to this URL to authorize
    print("PLase visit this link and authorize the app ==> " + authUrl)
    print ("Enter the Authorization PIN")

    # Write the access tokens to file
    pin = input().strip() # strip the new line character from pressing 'enter'
    token = twitter_auth.get_access_token(verifier=pin)
    with open("etc/auth/tokens.txt", "w") as accessTokenFile:
        accessTokenFile.write(token[0]+'\n') # '\n' indicates a newline char
        accessTokenFile.write(token[1]+'\n')
    return
Exemple #19
0
def login1(request):
    try:
        request_token1 = session['request_token']
        del session['request_token']

        auth = OAuthHandler(ak, aks)
        auth.request_token = request_token1

        verifier = request.GET.get('oauth_verifier')
        if verifier is None: return render(request, 'invalid.html', {})
        auth.get_access_token(verifier)
        key, secret = auth.access_token, auth.access_token_secret
        auth.set_access_token(key, secret)
        twitter_client = API(auth, wait_on_rate_limit=True)

        tweets_id = []
        tweets_user = {}
        tweets_url_count = {}

        now = datetime.now()

        for tweet in twitter_client.home_timeline():

            if now < (tweet.created_at - timedelta(hours=(24 * 7))): break

            if tweet.entities['urls'] != []:
                #*************** entering into database**********
                try:
                    obj = TweetsDetails()
                    obj.created_at = str(tweet.created_at)[:19]
                    obj.tweet_id = tweet.id
                    obj.tweet_by = tweet.user.screen_name
                    obj.user_twitter_id = myself.screen_name
                    unique_str = myself.screen_name + str(tweet.id)
                    obj.unique = unique_str
                    obj.save()
                except:
                    l = 0

                l = len(tweet.entities['urls'])

                if str(tweet.user.screen_name) in tweets_user:
                    tweets_user[str(tweet.user.screen_name)] += l

                else:
                    tweets_user[str(tweet.user.screen_name)] = l

                for i in range(l):
                    if tweet.entities['urls'][i]['url'] in tweets_url_count:
                        tweets_url_count[tweet.entities['urls'][i]['url']] += 1
                    else:
                        tweets_url_count[tweet.entities['urls'][i]['url']] = 1

                tweets_id.append(int(tweet.id))

        top_url_counts, top_active_users, embed_links = [], [], []

        for x in tweets_url_count.keys():
            top_url_counts.append([tweets_url_count[x], x])

        for x in tweets_user:
            top_active_users.append([tweets_user[x], x])

        for id in tweets_id:
            embReqUrl = 'https://publish.twitter.com/oembed?url=https%3A%2F%2Ftwitter.com%2FInterior%2Fstatus%2F' + str(
                id)
            embResp = requests.get(embReqUrl).json()
            embed_links.append(embResp['html'])

        top_active_users.sort(reverse=True)
        top_url_counts.sort(reverse=True)

        if len(top_active_users) > 3: top_active_users = top_active_users[:3]
        if len(top_url_counts) > 3: top_url_counts = top_url_counts[:3]

        if len(top_active_users) == 0: top_active_users.append(['-', '-'])
        if len(top_url_counts) == 0: top_url_counts.append(['-', '-'])

        x = []

        #Modifying tweet embed link as a string

        s = ' tw-align-center'
        for i in range(len(embed_links)):
            embed_links[i] = embed_links[i][:len(embed_links[i]) - 86]
            embed_links[i] = embed_links[i][:32] + s + embed_links[i][32:]
            x.append(embed_links[i])

        finaldict = {}
        finaldict['embedlink'] = x
        finaldict['urlcount'] = top_url_counts
        finaldict['topuser'] = top_active_users

        return render(request, 'second page.html', finaldict)

    except Exception as e:
        print(e)
        return render(request, 'invalid.html', {})
import tweepy
import json
from tweepy import AppAuthHandler 
from tweepy import OAuthHandler

with open("private/oauth-config.json", "r") as config:
        oauth_config = (json.loads(config.read()))
        consumer_key = oauth_config.get('consumer-key')
        consumer_secret = oauth_config.get('consumer-secret')

oauth = OAuthHandler(consumer_key, consumer_secret)

try:
    redirect_url = oauth.get_authorization_url()
except tweepy.TweepError:
    print('Error: failed to get the redirect URL.')

access_token = oauth.get_access_token(verifier='enter pin here')

from tweepy import OAuthHandler


CONSUMER_KEY = 'place key here'
CONSUMER_SECRET = 'place secret here'

auth = OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET)
auth_url = auth.get_authorization_url()
print('Please authorize: ' + auth_url)
verifier = input('PIN: ').strip()
auth.get_access_token(verifier)
print("ACCESS_KEY = '%s'" % auth.access_token.key)
print("ACCESS_SECRET = '%s'" % auth.access_token.secret)
from tweepy import OAuthHandler
from tweepy import TweepError

from config import get_config
from log_handler import get_logger

logger = get_logger(__name__)
CONSUMER_KEY = get_config().consumer_key
CONSUMER_SECRET = get_config().consumer_secret
auth = OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET)

try:
    redirect_url = auth.get_authorization_url()
    print(f"Go here, get the code => {redirect_url}")
    verification_code = input("Verification Code: ")
    auth.request_token.update({"oauth_token_secret": verification_code})
    auth.get_access_token(verification_code)
    print("---")
    print(f"Access Token => {auth.access_token}")
    print(f"Secret Token => {auth.access_token_secret}")
    print("---")
except TweepError as e:
    print("Unable to continue...")
    logger.error(e)
Exemple #23
0
them now you. But so you can easily run this scrip and have all the keys you
need for my gateway.
'''
from tweepy import OAuthHandler, API, TweepError
import webbrowser

# Go to https://dev.twitter.com and sign up for a developer account. Then create
# an app. This app shouldn’t have a callback url. Look in your app for the
# tokens and use them for the OAuthHandler
consumer_token = 'kYdbvAGXIhWGHyNKdNTssfpzE'
consumer_secret = 'MM2EVucINNxfFEB0akTenqConUnucj9FaS4hMX1F7wEw5WDvD1'
auth = OAuthHandler(consumer_token, consumer_secret)

# This will open your web browser and ask you to verify for the app. If you
# agree, they show you a pin. If your app has a callback url, they would
# redirect you to this url and didn't show you the pin.
try:
    redirect_url = webbrowser.open(auth.get_authorization_url())
except TweepError:
    print('Error! Failed to get request token.')
    exit()

pin = input('Verification pin number from twitter.com: ').strip()
token = auth.get_access_token(verifier=pin)

print('All the token:')
print('ckey:', consumer_token)
print('csecret:', consumer_secret)
print('akey:', auth.access_token)
print('asecret:', auth.access_token_secret)