[Python] Twitter API – tweepy 활용하기

By | 2013/02/04

다음 코드는 Consumer_key, Consumer_secret, Access_key, Access_secret 의 값을 이용하여 OAuth 인증을 받고 이를 이용하여 'Hello, tweepy API' 라는 글을 본인의 계정으로 트윗하는 샘플코드이다.

#-*- coding:cp949 -*-

import tweepy

CONSUMER_KEY = 'aUPI30zXd2hzUAqP9ow'
CONSUMER_SECRET = 'JOzfAHzEBAxOrmY9ERkOuvFJKaupdQ4gADmN2471FRY'
ACCESS_KEY = '48014458-kRfCeeMdHm3YDyH1ZYXaYhmywMe6jeN7dksLxv13k'
ACCESS_SECRET = '57B6hQaue2FXyY0fR3P1ppHwGnVKte0O1ZnnznA4'

auth = tweepy.OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET)
auth.set_access_token(ACCESS_KEY, ACCESS_SECRET)
api = tweepy.API(auth)

status = api.update_status('Hello, tweepy API')

update_status()는 트윗을 날리고 해당 트윗에 대한 정보를 return하므로, 위의 코드에서 status 변수는 이 트윗에 대한 모든 정보를 포함하고 있다. 예를 들어 status 변수에 저장된 트윗 정보는 다음과 같다. 방금 날린 트윗의 업데이트시간을 알고 싶다면 print(status.created_at) 으로 확인할 수 있다.

 

{
'contributors': None,
'truncated': False,
'text': 'Hello, tweepy API',
'in_reply_to_status_id': None,
'id': 168229703965085696,
'_api': ,
'author': ,
'retweeted': False,
'coordinates': None,
'source': 'sangkeun',
'in_reply_to_screen_name': None,
'id_str': '168229703965085696',
'retweet_count': 0,
'in_reply_to_user_id': None,
'favorited': False,
'retweeted_status': ,
'source_url': 'http://sangkeun.net',
'user': ,
'geo': None,
'in_reply_to_user_id_str': None,
'created_at': datetime.datetime(2012, 2, 11, 7, 9, 54),
'in_reply_to_status_id_str': None,
'place': None
}

 

이제는 get_user(id) API를 이용하여 특정인의 친구 목록을 알아내고, 이를 출력하는 방법에 대해 알아보자.

#-*- coding:cp949 -*-

import tweepy

CONSUMER_KEY = 'aUPI31zXd224UAqP9ow'
CONSUMER_SECRET = 'JOzfAHzEBAxOrmY9ERkOuvFJ2cjpdQ4gAD3N2471FRY'
ACCESS_KEY = '48014458-kRfCeeMdHm3YDyH1ZYXaYhmywMe2jeN7dsLxv13k'
ACCESS_SECRET = '57B6hQaue2FXyYcfR3P1ppHwGaVKte8O1ZnnznA4'

auth = tweepy.OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET)
auth.set_access_token(ACCESS_KEY, ACCESS_SECRET)
api = tweepy.API(auth)

user = tweepy.api.get_user('pskalyber')
for friend in user.friends():
print(friend.screen_name)

user 변수는 특정인의 친구 목록 및 각 친구의 정보를 저장하고 있다. 여기서는 screen_name 속성을 이용하여 친구 이름을 출력하도록 하였다. 다음은 User Object의 속성들이다.

{
'follow_request_sent': False,
'profile_use_background_image': True,
'id': 132728535,
'_api': ,
'verified': False,
'profile_sidebar_fill_color': 'C0DFEC',
'profile_text_color': '333333',
'followers_count': 80,
'protected': False,
'location': 'Seoul Korea',
'profile_background_color': '022330',
'id_str': '132728535',
'utc_offset': 32400,
'statuses_count': 742,
'description': "What the hell",
'friends_count': 133,
'profile_link_color': '0084B4',
'profile_image_url': 'http://a1.twimg.com/profile_images/1234351752/_2_2__normal.jpg',
'notifications': False,
'show_all_inline_media': False,
'geo_enabled': True,
'profile_background_image_url': 'http://a2.twimg.com/a/1234785484/images/themes/theme15/bg.png',
'screen_name': 'sangkeun',
'lang': 'en',
'following': True,
'profile_background_tile': False,
'favourites_count': 2,
'name': 'Sangkeun Park',
'url': 'http://sangkeun.net',
'created_at': datetime.datetime(2012, 2, 11, 7, 10, 14),
'contributors_enabled': False,
'time_zone': 'Seoul',
'profile_sidebar_border_color': 'a8c7f7',
'is_translator': False,
'listed_count': 2
}

더 자세한 정보는 Twitter 개발자 페이지Tweepy 구글코드 저장소 또는 파이썬 Tweepy 페이지에서 알아볼 수 있다.