파이썬(python)으로 트위터(twitter)에 글쓰기, tweepy

2015. 5. 5. 18:18IT/IOT

728x90
반응형



1. 환경

vmware 우분투리눅스 14.04 버전에서 실행하기


2.제약조건
- python2.7.6 환경에서 하니 너무 낮은 버전이 되어서 ssl에서 문제가 있다하여 안되어서 python3버전에서 해보는 것으로 하다.
- 트위터 계정을 만들어 놓을 것

3. 순서
1)먼저 tweepy를 설치해 보았다.
리눅스 커멘드모드에서 ..
git clone git://github.com/tweepy/tweepy.git
cd tweepy
python setup.py install
된줄 알고 python3를 실행해서 import tweepy를 해보니 
2)  pip가 없다 해서 pip를 설치하다.

이건 python2.7용 설치
sudo apt-get install python-pip 
이건 python3.3용 설치
sudo apt-get install python3-pip

다 된줄 알고 또 python3를 실행해서 
import tweepy를 해보니
3) 또 OAuthlib가 없다 해서 그것도 설치하다
sudo apt-get install python3-OAuthlib

암튼 python3 실행해서 모듈이 없다고 하면 설치하였다.
이제 그런게 마무리 되었으면 

트위터에서 로그인한 후
https://apps.twitter.com/ 에 들어가서 Create New App을 눌러서 접근 계정을 만든다.
남들이 해 놓은게 많아서 생략한다. 그런데 좀 보니 중간에 url을 넣으라고 하는데, 이건 내가 뭐 서비스하는 홈피가 있는거도 아니니, 일단 내 블로그 주소를 갖다 넣었다. 그리고 나서 customer_key와 secret_key를 받아서 아래와 같이 적용하였다.

(접근 권한 얻기)
>>> import tweepy
>>> c_key='UBt1QlYaysPYL'
>>> c_secret='go3IqkW'
>>> auth=tweepy.OAuthHandler(c_key,c_secret)
>>> auth_url=auth.get_authorization_url()
>>> print(auth_url)
이렇게 하니 아래 주소가 나온다. 아래 주소창을 실행시키니 패스워드 같은 7자리 숫자가 나온다.

나온 숫자를 아래처럼 입력받아서, 
>>> verifier=input(':').strip()
:7822336

아래 문장처럼 접근 권한을 받으니 아래와 같은 값이 리턴된다.
>>> auth.get_access_token(verifier)
('2745448888-L4zSyCuda9AVEgT5eredgretttFFR', 'HsHtrsSAmVXxSXwJ6KdO')

그냥 프린트문장을 쓰니깐 프린트가 먹지를 않는다. 타입이 다른가보다. 좀더 살펴보기로 하고,,
이제 트위터에 출력을 위해서 아래와 같이 입력한다. 

>>> access_key='274****************'
>>> access_token='HsHtrs'
>>> import urllib
>>> auth=tweepy.OAuthHandler(c_key,c_secret)
>>> auth.set_access_token(access_key,access_token)
>>> api=tweepy.API(auth)
>>> api.update_status('Hello from tweepy!')

이렇게 하니까 400 오류가 발생한다. 
tweepy.error.TweepError: Twitter error response: status code = 400

찾아보니 버그라고 해서 아래와 같이 수정하였다.
>>> api.update_status(status='Hello from tweepy!')

트위터에 정말 출력이 되었다.
IOT와 관련하여 각종 정보를 사용자에게 전달할 일이 많을텐데 ,트위터가 딱 좋아 보이고, 그런의미에서 계측된 정보들을 전송하는 방법에서 아주 좋은 방법인것 같다. 

누구에겐가 도움이 되기를 바라며,,

 

 

728x90
반응형