Authorization
Many endpoints currently use OAuth 1.0a method to act, or make API requests, on behalf of a Twitter account (but OAuth 2.0 with fine-grained scopes is preferred). For example, if you have a Twitter developer app, you can make API requests on behalf of any Twitter account as long as that user authenticates your app.
So, This will show you how to obtain user access tokens through the 3-legged OAuth flow.
Prerequisite
At the beginning, You need a Twitter app, and enable the 3-legged OAuth
.
You can get more information at the official Documentation.
If you're ready, now let's get started do a simple example with this library.
Initial Api
You need consumer key and secret to initial Api instance.
from pytwitter import Api
api = Api(consumer_key='your consumer key', consumer_secret='your consumer secret', oauth_flow=True)
By default, The callback uri is https://localhost/
, You need add this url to App's Authentication settings
.
Get authorization url
Now you can get the url for user to do authenticate,
api.get_authorize_url()
# https://api.twitter.com/oauth/authorize?oauth_token=NPcudxy0yU5T3tBzho7iCotZ3cnetKwcTIRlX0iwRl0
Eg: https://localhost/?oauth_token=NPcudxy0yU5T3tBzho7iCotZ3cnetKwcTIRlX0iwRl0&oauth_verifier=uw7NjWHT6OJ1MpJOXsHfNxoAhPKpgI8BlYDhxEjIBY
Generate access token
Once you have the redirect response for your callback url, you can get the user access token.
api.generate_access_token(response="You response url")
# {'oauth_token': 'oauth-token','oauth_token_secret': 'oauth-token-secret', 'user_id': 'user id', 'screen_name': 'screen name'}
For convenience, lib have keep the auth user id with property auth_user_id
.
Now the api instance will have the user authorization. You can use this to manage apis need user authorization like hide reply
, manage follow
...
Note
If you have any confusion, you need to read the Get user access token first.