본문 바로가기
Programming/python

[Python] twitter api 사용하기

by 유주원 2017. 8. 23.

Twitter api를 사용하기 위해서는 oAuth 인증을 해야 한다. 그러기 위해서는 twitter에 가입해야 하고.... twitter 개발자 센터 가서 app을 하나 만들어야 하고.... 생각보다 절차가 복잡하다..

이제부터 하나하나씩 살펴보기로 한다.

우선 twitter에 다들 가입되어 있다는 가정하에!!

twitter 개발자 센터로 가서 앱을 하나 만들자. (https://dev.twitter.com/)

추가 : twitter 사이트가 개편됐다.... https://apps.twitter.com/ 로 가서 앱을 만들자.

Myapps 버튼을 누르면 내가 만든 app 목록을 보거나 새롭게 app을 만들 수가 있다. 물론 twitter id로 login을 해야 한다. My apps 버튼을 누르고 앱을 만들어 보자.



필자의 경우 2개의 app을 이미 만들어 놓은 상태이다. 우측 상단의 Create New App 버튼을 클릭하고 app을 만들자.

consumer key와 access token을 받기 위해서는 아래 그림에 나타난 Name, Description, Website 정보를 입력해 주어야 한다. 그리고 가장 중요한 점이 있는데, twitter 계정에 전화 번호 등록이 되어 있지 않다면 app을 만들 수가 없다. 나 역시 항목들을 다 입력해 주었지만 twitter에 전화 번호 정보가 없어서 app을 만드는데 실패했다. 


twitter 사이트로 가서 전화번호를 추가하자.

트위터에 내 프로필을 클릭하면 그림과 같이 드롭다운 메뉴 리스트가 나타날 것이다. Settings and privacy를 클릭하자. 



클릭하면 아래와 같은 화면이 나타나게 된다.

왼쪽의 Privacy and safety 버튼을 클릭한 후 우측의 Manage your contacts 버튼을 클릭하자. 클릭하면 연락처 번호를 입력하는 창이 뜨게 되고 해당 정보를 입력해 주면 된다.



twitter에 연락처 정보 기입까지 끝났다면 다시 app 생성 페이지로 돌아와서 app을 생성하자. 생성하면 아래와 같은 그림이 나타나게 된다.



consumer key 정보와 consumer secret key, access token, access token secret 키 정보를 확인해 볼 수가 있으며 이렇게 발급받은 키를 통해 twitter의 oAuth 인증을 할 수가 있고 api를 사용할 수가 있다. 


우리는 이렇게 발급 받은 키를 http로 직접 쏴주기 보다는 훌륭하신 분들이 잘 만들어 놓은 python package를 이용해서 쉽게 사용할 것이다.

아래의 패키지를 설치하자.


$> pip install python-twitter


설치가 완료 되었으면, git을 통해 아래의 repository를 다운 받고, 실행에 필요한 requirement를 설치하자.


$> git clone git://github.com/bear/python-twitter.git

$> pip install -Ur python-twitter/requirements.txt 


이제 python api 사용을 위한 모든 준비가 끝났다.


아래의 소스를 통해 twitter oAuth 인증을 받자.


import twitter


api = twitter.Api(consumer_key='발급받은 consumer_key',

                           consumer_secret='발급받은 consumer_secret',

                           access_token_key='발급받은 access_token_key',

                           access_token_secret='발급받은 access_token_secret')


위와 같은 twitter.Api 객체를 생성해주고 이 객체가 oAuth 인증을 잘 받는지 확인하기 위해 아래의 verify 코드를 실행시켜 본다.


print(api.VerifyCredentials())


oAuth 인증이 잘 된다면. 내 twitter 계정 정보를 무사히 가져올 수 있을 것이다.


아래의 링크를 통해 해당 package에 대한 보다 자세한 설명을 볼 수가 있다. 


https://python-twitter.readthedocs.io/en/latest/


또한 python shell 환경에서 help 명령을 통해 twitter api의 보다 자세한 사용 방법을 확인해 볼 수가 있다.



여기서 하나 반전이 있는데 twitter api의 경우 15분당 15번의 query 수만 허용이 된다. 그래서 그 이상 query를 요청했을 경우 over limited 메시지가 뜨게 될 것이다. ( 15분당 15번... 즉 1 query / 1 minute..) 

아주 아주 신중하게 써야 할 것 같다.