Twitter OAuth 인증(Python3)

5854 단어 트위터OAuthPython3
다음 기사에 있는 내용을 추적해 보았습니다.
[Python] OAuth 인증으로 Twitter 연동/로그인 구현

consumer_token과 consumer_secret에서 redirect_url을 얻습니다.

get_redirect_url.py
#! /usr/bin/python
#
#   get_redirect_url.py
#
#                   Nov/29/2018
# ------------------------------------------------------------------
import tweepy
consumer_token = ""
consumer_secret = ""

auth = tweepy.OAuthHandler(consumer_token, consumer_secret)
redirect_url = auth.get_authorization_url()
print(redirect_url)
# ------------------------------------------------------------------

실행 결과
$ ./get_redirect_url.py 
https://api.twitter.com/oauth/authorize?oauth_token=7w-KbQAA12345BBAA8ABZ16_S1g

Twitter에 로그인한 상태에서
이 주소에 액세스하면 다음과 같은 화면이 됩니다.


Authorize app를 클릭하면,
다른 화면으로 이동하여 주소 표시줄에 oauth_token과 oauth_verifier가 표시됩니다.
다음과 같은 느낌입니다.
https://ekzemplaro.org/?oauth_token=FqyTcwAABBBA9AA8AACCZ16ZAiM&oauth_verifier=86cg6dZPbAAplhikGWk12XHnSDbOSIHC

oauth_token과 oauth_verifier에서 access_token을 얻습니다.

get_access_token.py
#! /usr/bin/python
#
#   get_access_token.py
#
#                       Nov/29/2018
# ------------------------------------------------------------------
import  sys

from requests_oauthlib import OAuth1Session
from urllib.parse import parse_qsl

base_url = 'https://api.twitter.com/'
access_token_url = base_url + 'oauth/access_token'

consumer_key = ""
consumer_secret = ""

oauth_token = ""
oauth_verifier = ""

sys.stderr.write("*** 開始 ***\n")

twitter = OAuth1Session(
        consumer_key,
        consumer_secret,
        oauth_token,
        oauth_verifier,
    )

response = twitter.post(
        access_token_url,
        params={'oauth_verifier': oauth_verifier}
    )

access_token = dict(parse_qsl(response.content.decode("utf-8")))

print(access_token)
#
sys.stderr.write("*** 終了 ***\n")
# ------------------------------------------------------------------

실행 결과
$ ./get_access_token.py 
{'oauth_token': '1066884441803311104-UXNebbb9Hg7wTVanxTv9UoHQ7dRqG6', 'oauth_token_secret': 'yfNZjqAZbwMFrvqlkI9GaaaaAEw3BMq3whGJadQibegYU', 'user_id': '3166889501999311104', 'screen_name': 'testabcd001'}

여기에서 얻은 oauth_token과 oauth_token_secret을 사용하여 testtabcd001의 timeline을 읽을 수 있습니다.

 

좋은 웹페이지 즐겨찾기