Tweepy 기술 문서

내용:

설치하기

The easiest way to install the latest version from PyPI is by using pip:

pip install tweepy

You can also use Git to clone the repository from GitHub to install the latest development version:

git clone https://github.com/tweepy/tweepy.git
cd tweepy
pip install .

Alternatively, install directly from the GitHub repository:

pip install git+https://github.com/tweepy/tweepy.git

Tweepy 시작하기

들어가며

Tweepy가 처음이라면, 이 문서를 참조하시는 것을 권장합니다. 이 문서의 목표는 여러분이 Tweepy를 어떻게 설정하고 롤링하는지 알게 되는 것입니다. 여기서는 세부적인 언급은 피할 것이며, 몇 가지 중요한 기초 사항들만 다룰 것입니다.

Hello Tweepy

import tweepy

auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_token_secret)

api = tweepy.API(auth)

public_tweets = api.home_timeline()
for tweet in public_tweets:
    print(tweet.text)

위 예제는 내 타임라인의 트윗을 다운로드하여, 콘솔에 각 트윗을 텍스트로써 출력하는 예제입니다. 참고로, 트위터는 모든 요청에 OAuth 인증을 요구합니다. 인증에 대한 보다 자세한 내용은 인증 지침 를 참고해주세요.

API

API 클래스는 트위터의 모든 RESTful API 메소드에 대한 접근을 지원합니다. 각 메소드는 다양한 매개변수를 전달받고 적절한 값을 반환할 수 있습니다. 보다 자세한 내용은 API Reference 를 참고해주세요.

모델 (Models)

When we invoke an API method most of the time returned back to us will be a Tweepy model class instance. This will contain the data returned from Twitter which we can then use inside our application. For example the following code returns to us a User model:

# Get the User object for twitter...
user = api.get_user('twitter')

모델에는 다음과 같이, 사용 가능한 데이터 및 메소드가 포함되어 있습니다:

print(user.screen_name)
print(user.followers_count)
for friend in user.friends():
   print(friend.screen_name)

모델에 대한 보다 자세한 내용은 ModelsReference(Original Link Missing)를 참고해주세요.

인증 지침

들어가며

Tweepy는 OAuth 1a(응용 프로그램-사용자)와 OAuth 2a(응용프로그램 전용)을 모두 지원합니다. 인증은 tweepy.AuthHandler 클래스를 통해 처리합니다.

OAuth 1a 인증

Tweepy는 OAuth 1a를 가능한 편리하게 제공하기 위해 노력합니다. 다만, 이 과정을 시작하기 위해선 클라이언트 응용프로그램을 트위터에 등록할 필요가 있습니다. 새로운 응용 프로그램을 생성하고, 그를 실행하기 위해서는 Consumer_key와 Secret을 가져야 합니다. 이 2가지는 필요하므로 잘 보관합시다.

아래 코드는 OAuthHandler 인스턴스를 생성하는 코드입니다. 여기에, 위에서 얻은 Consumer_key와와 Secret을 전달합니다:

auth = tweepy.OAuthHandler(consumer_key, consumer_secret)

웹 응용 프로그램이 있고 동적일 필요가 있는 콜백 URL을 사용하는 경우, 다음과 같이 전달합니다:

auth = tweepy.OAuthHandler(consumer_key, consumer_secret,
callback_url)

콜백 URL을 변경하지 않을 경우, 응용 프로그램의 프로필을 설정할 때 twitter.com에서 정적으로 설정하는 것이 가장 좋습니다.

기초적인 인증과는 다르게, 우리는 API를 사용하기 전에 다음의 "OAuth 1a Dance"과정이 거쳐야 합니다.다음와 같은 과정을 완벽하게 완료해야 합니다.

  1. 트위터에서 요청 토큰(Request Token)을 가져옵니다.
  2. 사용자를 twitter.com으로 리다이렉트 시켜, 응용 프로그램을 인증합니다.
  3. 콜백을 이용하는 경우, 트위터는 사용자를 우리에게 리다이렉트 할 것입니다. 그렇지 않으면 사용자가 수동으로 검증 코드를 입력해야만 합니다.
  4. 인증된 요청 토큰을 접근 토큰(Access Token)으로 교체합니다.

자, 이제 인증 과정을 진행하기 위해 요청 토큰을 가져옵시다.

try:
    redirect_url = auth.get_authorization_url()
except tweepy.TweepError:
    print('Error! Failed to get request token.')

이 호출은 트위터를 통하여 토큰을 요청하고, 사용자가 인증을 위해 리다이렉트 되어야 하는 인증 URL을 반환합니다. 만약 데스크탑 응용 프로그램인 경우, 사용자가 돌아올 때까지 OAuthHandler 인스턴스를 유지할 수 있습니다. 따라서, 요청 토큰은 콜백 URL 요청에 필요하므로 세션에 저장해야만 합니다. 다음은 요청한 토큰을 세션에 저장하는 예시 코드입니다:

session.set('request_token', auth.request_token['oauth_token'])

이제 get_authorization_url() 메소드를 통해, 이전에 반환받은 URL로 사용자를 리다이렉트 할 수 있습니다.

만약 데스크탑 응용 프로그램(또는 콜백을 사용하지 않는 응용 프로그램)이라면, 트위터의 승인 이후 제공되는 "검증 코드"를 사용자에게 요구해야 합니다. 웹 응용 프로그램 내에서 이 검증 코드는 URL에서 GET 쿼리 매개변수의 형태로 트위터의 콜백 요청에 의해 제공됩니다.

# Example using callback (web app)
verifier = request.GET.get('oauth_verifier')

# Example w/o callback (desktop)
verifier = raw_input('Verifier:')

마지막 단계는 요청 토큰을 접근 토큰으로 교체하는 것입니다. 접근 토큰은 트위터 API라는 보물 상자에 접근하기 위한 "열쇠"입니다. 이 토큰을 가져오기 위해서는, 다음과 같은 과정을 거쳐야합니다:

# Let's say this is a web app, so we need to re-build the auth handler
# first...
auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
token = session.get('request_token')
session.delete('request_token')
auth.request_token = { 'oauth_token' : token,
                         'oauth_token_secret' : verifier }

try:
    auth.get_access_token(verifier)
except tweepy.TweepError:
    print('Error! Failed to get access token.')

차후 사용을 위해 접근 토큰을 저장하는 것은 좋은 생각입니다.이렇게 하면, 사용할 때 마다 계속 접근할 필요가 없어집니다. 트위터는 토큰을 만료시키지 않으므로, 비활성화 되는 때는 사용자가 응용 프로그램 접근을 취소할 때입니다. 접근 토큰을 저장하는 방법은 응용 프로그램에 따라 달라지지만, 기본적으로 Key와 Secret 문자열 값은 저장할 필요가 있습니다:

auth.access_token
auth.access_token_secret

토큰 값은 데이터베이스, 파일, 그 외 데이터 저장 장소에 저장이 가능합니다. 저장된 접근 토큰을 이용해, 다시 OAuthHandler를 실행하기 위해서는 다음과 같은 코드를 이용해야 합니다:

auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(key, secret)

OAuthHandler가 접근 토큰을 전달받았으므로, 이제 다음 코드를 실행할 수 있습니다:

api = tweepy.API(auth)
api.update_status('tweepy + oauth!')

OAuth 2 인증

Tweepy는 OAuth 2 인증 방식도 지원합니다. OAuth 2는 응용 프로그램이 사용자의 특별한 조작 없이도 API 요청을 할 수 있는 인증 방식입니다. 공개된 정보에 대한 읽기 전용 접근만이 필요한 경우 이 방식을 사용하세요.

물론 OAuth 1a처럼, 먼저 클라이언트 응용프로그램을 등록하고 Consumer_key와 Secret값을 얻어야 합니다.

그런 다음, AppAuthHandler 인스턴스를 생성하고, Consumer_key와 Secret을 전달합니다:

auth = tweepy.AppAuthHandler(consumer_key, consumer_secret)

토큰을 전달받았다면, 이제 작업을 시작할 준비가 되었습니다:

api = tweepy.API(auth)
for tweet in tweepy.Cursor(api.search, q='tweepy').items(10):
    print(tweet.text)

코드 조각

들어가며

여기에는 당신이 Tweepy를 사용하는 데에 도움을 줄 몇 개의 코드 조각들이 있습니다. 직접 만든 코드를 기여하거나, 여기 있는 코드를 개선해주세요!

OAuth

auth = tweepy.OAuthHandler("consumer_key", "consumer_secret")

# Redirect user to Twitter to authorize
redirect_user(auth.get_authorization_url())

# Get access token
auth.get_access_token("verifier_value")

# Construct the API instance
api = tweepy.API(auth)

모든 팔로워 팔로우하기

아래 코드는 현재 인증된 사용자의 모든 팔로워를 팔로우 하도록 합니다.

for follower in tweepy.Cursor(api.followers).items():
    follower.follow()

커서 이용 한도의 처리

커서는 커서 안의 next() 메소드 안에서 RateLimitError 를 일으킵니다. 이 오류는 커서를 반복자로 감쌈으로써 처리할 수 있습니다.

이 코드를 실행하면 당신이 팔로우한 모든 유저 중 300명 이하를 팔로우하는 유저들을 출력하고, 속도 제한에 도달할 때마다 15분간 기다릴 것입니다. 이 코드는 명백한 스팸봇을 제외하기 위한 예제입니다.

# In this example, the handler is time.sleep(15 * 60),
# but you can of course handle it in any way you want.

def limit_handled(cursor):
    while True:
        try:
            yield cursor.next()
        except tweepy.RateLimitError:
            time.sleep(15 * 60)

for follower in limit_handled(tweepy.Cursor(api.followers).items()):
    if follower.friends_count < 300:
        print(follower.screen_name)

커서(Cursor) 지침

이 지침은 커서 객체를 이용한 페이징에 대한 세부 사항을 설명합니다.

들어가며

트위터 API를 이용하는 개발에서, 페이징은 타임라인 반복, 사용자 목록, 쪽지, 그 외 여러 곳에서 자주 사용됩니다. 페이징을 수행하기 위해서는, 각 요청마다 페이지/커서 매개변수를 전달해야 합니다. 문제는, 페이징 루프를 관리하기 위해서는 많은 양의 표준 코드가 필요하다는 점입니다. Tweepy는 이런 페이징을 더 쉽고 적은 코드로 돕기 위해 커서 객체를 가지고 있습니다.

기존 방법 vs 커서 방법

먼저, 인증된 사용자의 타임라인 내에서 status를 반복하는 방법을 구현해봅시다. 커서 객체가 도입되기 전에 사용하던 "기존 방법"은 다음과 같습니다:

page = 1
while True:
    statuses = api.user_timeline(page=page)
    if statuses:
        for status in statuses:
            # process status here
            process_status(status)
    else:
        # All done
        break
    page += 1  # next page

위 코드에서도 볼 수 있듯, 기존 방법은 페이징 루프마다 "page" 매개변수를 수동으로 관리해야 합니다. 다음은 Tweepy의 커서 객체를 사용하는 예시 코드입니다:

for status in tweepy.Cursor(api.user_timeline).items():
    # process status here
    process_status(status)

훨씬 나아 보이는군요! 커서가 보이지 않는 곳에서 모든 페이징 작업을 처리해 주므로, 우리는 결과 처리를 위한 코드에만 집중 할 수 있겠습니다.

API 메소드로 매개변수 전달하기

API 메소드로 매개변수를 전달해야 한다면 어떻게 하시겠습니까?

api.user_timeline(id="twitter")

커서를 호출 가능으로 전달했기 때문에, 메소드에 직접적으로 매개변수를 전달 할 수 없습니다.대신, 다음과 같이 커서 생성자 메소드로 매개변수를 전달합니다:

tweepy.Cursor(api.user_timeline, id="twitter")

이제 커서는 요청을 받으면 메소드에 매개변수를 전달해 줄 것입니다.

항목과 페이지

지금까지 항목당 페이징을 반복하는 방법을 구현해보았습니다. 페이지별로 결과를 처리하려면 어떻게 해야 할까요? 이럴 때는 pages() 메소드를 사용해보세요:

for page in tweepy.Cursor(api.user_timeline).pages():
    # page is a list of statuses
    process_page(page)

제한

일정 갯수의 항목이나 페이지만 반환받기를 원한다면 어떻게 해야 할까요? 아래와 같이, items()나 pages() 메소드에 값을 전달하는 것으로 이를 설정 할 수 있습니다.

# Only iterate through the first 200 statuses
for status in tweepy.Cursor(api.user_timeline).items(200):
    process_status(status)

# Only iterate through the first 3 pages
for page in tweepy.Cursor(api.user_timeline).pages(3):
    process_page(page)

확장된 트윗

이 문서는 트위터의 Tweet 업데이트 관련 문서 에 대한 보충입니다.

들어가며

On May 24, 2016, Twitter announced changes to the way that replies and URLs are handled and published plans around support for these changes in the Twitter API and initial technical documentation describing the updates to Tweet objects and API options.[1] On September 26, 2017, Twitter started testing 280 characters for certain languages,[2] and on November 7, 2017, announced that the character limit was being expanded for Tweets in languages where cramming was an issue.[3]

표준 API 메소드

tweepy.API 의 Status 객체를 반환하는 모든 메소드는 새로운 tweet_mode 매개변수를 받습니다. 유효한 형식의 매개변수로는 compatextended 가 있으며, 이는 각각 호환성 모드 (Compatibility Mode)와 확장 모드 (Extended Mode)를 제공합니다. 전달받은 매개변수가 없을 경우, 기본값인 호환성 모드가 제공됩니다.

호환성 모드 (Compatibility Mode)

기본적으로, 호환성 모드를 사용할 경우 tweepy.API 에 의해 반환되는 Status 객체의 text 속성값에서 필요에 따라 140자를 초과하는 데이터가 잘린 후 버려집니다. 데이터를 잘라 냈을 경우, Status 객체의 truncated 속성값은 True 가 되며, entities 속성에는 범위 내의 데이터, 즉 잘린 후의 엔티티만이 채워지게 될 것입니다. 이는 Status 객체의 text 속성값에 줄임표 문자, 공백 그리고 해당 트윗 자기 자신에 대한 영구적인 링크(Permalink)가 포함되는 것으로 식별이 가능합니다.

확장 모드 (Extended Mode)

확장 모드를 사용할 경우, Status 객체의 text 속성은 잘리지 않은(Untruncated) 온전한 텍스트 데이터를 가지는 full_text 속성으로 대체됩니다. 이 때 Status 객체의 truncated 속성값은 False 가 될 것이며, entities 속성에는 모든 엔티티들이 채워지게 될 것입니다. 또한, Status 객체는 트윗 중 표시 가능한 컨텐츠의 내부 첫 부분(Inclusive Start)과 외부 끝 부분(Exclusive End)을 가리키는, 두 가지 원소를 가지는 배열(Array) 형태의 display_text_range 라는 속성을 갖게 될 것입니다.

스트리밍

기본적으로, 스트림으로부터의 Status 객체에는 트윗의 원본 데이터(Raw data)와 페이로드(Payload)에 대응하는 필드를 가진 extended_tweet 속성이 포함될 수 있습니다. 이 속성/필드는 '확장된 트윗'에만 존재하며, 하위 필드에 대한 딕셔너리가 포함되어 있습니다. 이 딕셔너리의 full_text 하위 필드/키에는 트윗에 대한 잘리지 않은(Untruncated), 온전한 텍스트 데이터가 포함될 것이며, entities 하위 필드/키에는 모든 엔티티들이 채워지게 될 것입니다. 만약 확장된 엔티티가 있다면, extended_entities 하위 필드/키에 그 엔티티들이 채워질 것입니다. 추가적으로, display_text_range 하위 필드/키에는 트윗 중 표시 가능한 컨텐츠의 내부 첫 부분(Inclusive Start)과 외부 끝 부분(Exclusive End)을 가리키는, 두 가지 원소를 가지는 배열(Array) 형태의 데이터가 저장될 것입니다.

리트윗 다루기

리트윗을 다룰 때 확장 모드를 사용할 경우, Status 객체의 full_text 속성이 리트윗된 트윗의 전체 텍스트를 포함하지 않고, 줄임표 문자 등으로 잘릴 수 있습니다. 물론 그렇다 하더라도, 리트윗 트윗에 대한 Status 객체의 retweeted_status 속성 그 자체가 또 하나의 Status 객체이기 때문에, 해당 개체의 full_text 속성을 대신 사용할 수 있습니다.

또, 이는 스트림으로부터의 리트윗 트윗에 대한 Status 객체 및 페이로드(Payload)에도 유사하게 적용됩니다. extended_tweet 으로부터의 딕셔너리에는 위와 비슷하게, 줄임표 문자 등으로 잘릴 수 있는 full_text 하위 필드/키가 포함되어 있습니다. 이 때 역시 리트윗된 Status 객체로부터의 (retweeted_status 로부터의 속성/필드로부터의) extended_tweet 속성/필드를 대신 사용할 수 있습니다.

예시

아래의 예시는, tweepy.API 객체와 트윗에 대한 id 를 이용, 해당 트윗의 모든 텍스트를 온전하게 출력하는 예시입니다. 이 때 해당 트윗이 리트윗된 트윗일 경우, 리트윗된 트윗의 모든 텍스트를 출력합니다:

status = api.get_status(id, tweet_mode="extended")
try:
    print(status.retweeted_status.full_text)
except AttributeError:  # Not a Retweet
    print(status.full_text)

status 가 Retweet일 경우(리트윗된 트윗일 경우), status.full_text 가 잘릴 수 있습니다.

아래의 StreamListener 를 위한 Status 이벤트 핸들러는, 트윗의 모든 텍스트를 출력합니다. 이 때, 해당 트윗이 리트윗된 트윗일 경우, 리트윗된 트윗의 모든 텍스트를 출력합니다:

def on_status(self, status):
    if hasattr(status, "retweeted_status"):  # Check if Retweet
        try:
            print(status.retweeted_status.extended_tweet["full_text"])
        except AttributeError:
            print(status.retweeted_status.text)
    else:
        try:
            print(status.extended_tweet["full_text"])
        except AttributeError:
            print(status.text)

status 가 Retweet일 경우(리트윗된 트윗일 경우), extended_tweet 속성을 가지지 않을 것이며, status.full_text 가 잘릴 수 있습니다.

각주

[1]https://twittercommunity.com/t/upcoming-changes-to-simplify-replies-and-links-in-tweets/67497
[2]https://twittercommunity.com/t/testing-280-characters-for-certain-languages/94126
[3]https://twittercommunity.com/t/updating-the-character-limit-and-the-twitter-text-library/96425

Tweepy를 이용한 스트리밍

Tweepy는 인증, 연결, 세션 생성 및 삭제, 수신 메시지 읽기 및 메시지 라우팅 등을 처리해줌으로써 트위터 스트리밍 API를 더욱 쉽게 사용할 수 있도록 해 줍니다."

이 페이지는 당신이 Tweepy로 트위터 스트림을 사용할 수 있게끔 도움을 주는 것을 목표로 합니다. 트위터 스트리밍의 일부 기능은 여기에서 다루지 않습니다. Tweepy 소스 코드의 streaming.py를 참고해주세요.

트위터 스트림에 접근하기 위해선 API 인증이 필요합니다. 인증 과정에 대한 설명은 인증 지침 을 참고해주세요.

요약

트위터 스트리밍 API는 트위터의 메세지를 실시간으로 다운로드 하는 데에 사용됩니다. 대량의 트윗을 얻거나, 사이트 스트림 또는 사용자 스트림을 사용해서 라이브 피드를 만드는 데에 유용합니다. 보다 자세한 설명은 트위터 스트리밍 API 설명서.를 참고해주세요.

스트리밍 API는 REST API와는 상당히 다릅니다. REST API는 트위터에서 데이터를 가져오는 데에 사용되는 반면, 스트리밍 API는 메세지를 지속되는 세션으로 보내주기 때문입니다. 이를 통해 스트리밍 API는 REST API를 사용하는 것보다 더 많은 데이터를 실시간으로 다운로드 할 수 있습니다.

Tweepy의 tweepy.Stream 은 스트리밍 세션을 설정하고, StreamListener 인스턴스에게 메시지를 보내는 일을 합니다. 스트림 수신자의 on_data 메소드는 모든 메시지를 수신하고 메시지의 종류에 따라 함수를 호출합니다. 기본 StreamListener 는 가장 일반적인 트위터 메시지를 분류하여 적절하게 설정된 메소드로 보낼 수 있습니다. 하지만 기본 StreamListener 의 메소드들은 스텁 메소드에 불과합니다.

그러므로 스트리밍 API를 사용할 때는 다음의 세 단계를 거쳐야 합니다.

  1. StreamListener 를 상속 받는 클래스 생성
  2. 그 클래스를 이용해 Stream 객체를 생성
  3. Stream 을 사용해서 트위터 API에 연결

1단계: StreamListener 생성

아래의 간단한 스트림 수신자는 status의 text를 출력합니다. Tweepy의 StreamListeneron_data 메소드는 손쉽게 status의 데이터를 on_status 메소드로 보내줍니다. StreamListener 를 상속받은 MyStreamListener 클래스를 생성하고 on_status 를 오버라이딩 합니다.

import tweepy
#override tweepy.StreamListener to add logic to on_status
class MyStreamListener(tweepy.StreamListener):

    def on_status(self, status):
        print(status.text)

2단계: Stream 생성

스트림을 얻기 위해선 API 인스턴스가 필요합니다. API 객체를 얻는 방법은 인증 지침 를 참조해주세요. API와 status 수신자를 얻어내면, 다음과 같이 스트림 객체를 만들 수 있습니다.

myStreamListener = MyStreamListener()
myStream = tweepy.Stream(auth = api.auth, listener=myStreamListener)

스트림 시작

Tweepy는 많은 트위터 스트림을 지원합니다. 대부분의 경우에는 filter, user_stream, sitestream 등을 사용하게 됩니다. 더 많은 다른 스트림의 지원 여부에 관한 정보는 트위터 스트리밍 API 설명서.를 참조해주세요.

이 예시 코드는 filter 를 사용해서 python 이라는 단어를 포함하는 모든 트윗을 스트리밍 합니다. 여기서, track 매개변수는 스트림에서 검색할 단어들의 배열을 의미합니다.

myStream.filter(track=['python'])

이 예제는 filter 를 사용해서 특정 사용자의 트윗을 스트리밍 하는 방법을 보여줍니다. 여기서, follow 매개변수는 사용자들의 ID의 배열입니다.

myStream.filter(follow=["2211149702"])

ID를 찾는 쉬운 방법 중 하나는 변환 웹사이트를 이용하는 것입니다. 인터넷에 'what is my twitter ID' 를 검색해 보세요.

추가적인 조언

비동기 스트리밍

스트림은 연결이 종료되지 않으면 닫히지 않으므로, 스레드를 차단할 수 있습니다. Tweepy는 filter 에서 편리성을 높여줄 매개변수인 is_async 를 제공하여, 스트림이 새로운 스레드에서 실행될 수 있도록 합니다. 예시 코드는 아래와 같습니다

myStream.filter(track=['python'], is_async=True)

예외 처리

트위터의 스트리밍 API를 사용할 때에는 한도(Rate Limit)를 초과하지 않아야 합니다. 만약 클라이언트의 스트리밍 API 접근 시도 간격 또는 횟수가 한도를 초과한다면, 420 오류를 수신하게 될 것입니다. 클라이언트가 420 오류를 수신한 후 기다려야 하는 시간은 접속에 실패할 때마다 기하급수적으로 증가합니다.

Tweepy의 Stream Listener 는 오류 코드를 on_error 스텁 메소드로 전송합니다. on_error 메소드는 기본적으로 False 을 반환하지만, 트위터 스트리밍 API 연결 설명서 에서 권장하는 백오프 전략을 사용하여 어떤, 혹은 모든 코드에서 Tweepy가 다시 연결할 수 있게끔 이를 재정의(Override) 할 수 있습니다.

class MyStreamListener(tweepy.StreamListener):

    def on_error(self, status_code):
        if status_code == 420:
            #returning False in on_error disconnects the stream
            return False

        # returning non-False reconnects the stream, with backoff.

트위터 API의 더 많은 오류 코드에 대한 정보를 보려면 트위터 응답 코드 설명서 를 참조하세요.

API 레퍼런스

이 페이지는 Tweepy 모듈에 대한 기초적인 안내를 포함하고 있습니다.

tweepy.api --- Twitter API 래퍼(Wrapper)

class API([auth_handler=None][, host='api.twitter.com'][, search_host='search.twitter.com'][, cache=None][, api_root='/1'][, search_root=''][, retry_count=0][, retry_delay=0][, retry_errors=None][, timeout=60][, parser=ModelParser][, compression=False][, wait_on_rate_limit=False][, wait_on_rate_limit_notify=False][, proxy=None])

이 클래스는 트위터로부터 제공되는 API의 래퍼를 제공합니다. 이 클래스가 제공하는 함수들은 아래와 같습니다.

매개 변수:
  • auth_handler -- 인증 핸들러
  • host -- 일반 API 호스트
  • search_host -- 검색 API 호스트
  • cache -- 캐시 백엔드
  • api_root -- 일반 API 루트 경로
  • search_root -- 검색 API 루트 경로
  • retry_count -- 에러가 발생했을 시, 재시도할 횟수
  • retry_delay -- 다음 재시도까지의 지연시간 (초 단위)
  • retry_errors -- 재시도할 HTTP 상태 코드
  • timeout -- 트위터로부터의 응답을 기다릴 최대 시간
  • parser -- 트위터로부터의 응답 결과를 파싱하는 데 사용할 객체
  • compression -- 요청에 GZIP 압축을 사용할지의 여부
  • wait_on_rate_limit -- 트위터 API 호출 제한 횟수 보충을 기다릴지의 여부
  • wait_on_rate_limit_notify -- 트위터 API 호출 제한 횟수 보충을 기다릴 때, 따로 안내 메세지를 출력할지의 여부
  • proxy -- 트위터에 연결할 때 사용할 HTTPS 프록시의 전체 주소.

타임라인 메소드

API.home_timeline([since_id][, max_id][, count][, page])

현재 인증된 사용자와 이 사용자의 친구들에 의해 작성된 Status 중, 가장 최근에 작성된 20개의 Status를 (리트윗을 포함해) 반환합니다. 웹 상에서의 /timeline/home와 동일합니다.

매개 변수:
  • since_id -- 지정한 ID보다 더 큰 ID값을 가지는 객체(즉, 지정한 객체보다 더 최근의 객체)만을 반환함.
  • max_id -- 지정한 ID보다 더 작은 ID값을 가지는 객체(즉, 지정한 객체보다 더 이전의 객체)만을 반환함.
  • count -- 페이지 당 시도하고 검색할 결과의 수.
  • page -- 검색할 페이지. (참고: 페이지 매김 제한 있음)
반환 형식:

Status 객체 리스트

API.statuses_lookup(id_[, include_entities][, trim_user][, map_][, include_ext_alt_text][, include_card_uri])

Returns full Tweet objects for up to 100 tweets per request, specified by the id_ parameter.

매개 변수:
  • id_ -- 반환받을 트윗의 ID 리스트(최대 100개).
  • include_entities -- False로 설정하면 엔티티 노드를 포함하지 않음. 기본값은 True.
  • trim_user -- 유저 ID가 반드시 유저 객체 대신 제공되어야 하는지를 나타내는 boolean 형태의 변수. 기본값은 False.
  • map_ -- 볼 수 없는 트윗을 포함할지의 여부를 설정하는 boolean 형태의 변수. 기본값은 False.
  • include_ext_alt_text -- 미디어 요소에 alt 속성 값이 있으면 ext_alt_text를 반환. ext_alt_text는 미디어 요소의 상위 레벨 Key 값이 됨.
  • include_card_uri -- (card_uri 값을 통한 일반 카드 및 광고 카드를 포함하는 트윗이 있다면) 가져온 트윗이 card_uri 값을 포함해야 하는지를 나타내는 boolean 형태의 변수.
반환 형식:

Status 객체 리스트

API.user_timeline([id/user_id/screen_name][, since_id][, max_id][, count][, page])

현재 인증된 사용자 또는 지정된 사용자의 Status 중 가장 최근의 20개를 반환합니다. `` id_`` 매개변수를 이용하면, 다른 사용자의 타임라인을 요청하는 것이 가능합니다.

매개 변수:
  • id -- 사용자 일련번호 또는 계정 이름.
  • user_id -- 사용자 일련번호. 어떤 값이 유효한 사용자 아이디인지, 유효한 일련번호인지를 확실히 해야 할 때 도움이 됨.
  • screen_name -- 사용자 아이디(예: @pinkrabbit412에서의 pinkrabbit412 ). 어떤 값이 유효한 사용자 아이디인지, 유효한 일련번호인지를 확실히 해야 할 때 도움이 됨.
  • since_id -- 지정한 ID보다 더 큰 ID값을 가지는 객체(즉, 지정한 객체보다 더 최근의 객체)만을 반환함.
  • max_id -- 지정한 ID보다 더 작은 ID값을 가지는 객체(즉, 지정한 객체보다 더 이전의 객체)만을 반환함.
  • count -- 페이지 당 시도하고 검색할 결과의 수.
  • page -- 검색할 페이지. (참고: 페이지 매김 제한 있음)
반환 형식:

Status 객체 리스트

API.retweets_of_me([since_id][, max_id][, count][, page])

현재 인증된 사용자의 최근 트윗 중, 다른 사용자에 의해 리트윗된 트윗 20개를 반환합니다.

매개 변수:
  • since_id -- 지정한 ID보다 더 큰 ID값을 가지는 객체(즉, 지정한 객체보다 더 최근의 객체)만을 반환함.
  • max_id -- 지정한 ID보다 더 작은 ID값을 가지는 객체(즉, 지정한 객체보다 더 이전의 객체)만을 반환함.
  • count -- 페이지 당 시도하고 검색할 결과의 수.
  • page -- 검색할 페이지. (참고: 페이지 매김 제한 있음)
반환 형식:

Status 객체 리스트

API.mentions_timeline([since_id][, max_id][, count])

리트윗을 포함하는, 가장 최근의 멘션(답글) 20개를 반환합니다.

매개 변수:
  • since_id -- 지정한 ID보다 더 큰 ID값을 가지는 객체(즉, 지정한 객체보다 더 최근의 객체)만을 반환함.
  • max_id -- 지정한 ID보다 더 작은 ID값을 가지는 객체(즉, 지정한 객체보다 더 이전의 객체)만을 반환함.
  • count -- 페이지 당 시도하고 검색할 결과의 수.
반환 형식:

Status 객체 리스트

Status 메소드

API.get_status(id[, trim_user][, include_my_retweet][, include_entities][, include_ext_alt_text][, include_card_uri])

ID 매개변수에 의해 구분된 하나의 Status 객체를 반환합니다.

매개 변수:
  • id -- status의 ID.
  • trim_user -- 유저 ID가 반드시 유저 객체 대신 제공되어야 하는지를 나타내는 boolean 형태의 변수. 기본값은 False.
  • include_my_retweet -- boolean 형태의 변수. 현재 인증된 사용자에 의해 리트윗된 트윗이, 추가적으로 리트윗된 원본 트윗의 ID를 포함하는 current_user_retweet 노드를 포함해야 하는지를 지정합니다.
  • include_entities -- False로 설정하면 엔티티 노드를 포함하지 않음. 기본값은 True.
  • include_ext_alt_text -- 미디어 요소에 alt 속성 값이 있으면 ext_alt_text를 반환. ext_alt_text는 미디어 요소의 상위 레벨 Key 값이 됨.
  • include_card_uri -- (card_uri 값을 통한 일반 카드 및 광고 카드를 포함하는 트윗이 있다면) 가져온 트윗이 card_uri 값을 포함해야 하는지를 나타내는 boolean 형태의 변수.
반환 형식:

Status 객체

API.update_status(status[, in_reply_to_status_id][, auto_populate_reply_metadata][, exclude_reply_user_ids][, attachment_url][, media_ids][, possibly_sensitive][, lat][, long][, place_id][, display_coordinates][, trim_user][, enable_dmcommands][, fail_dmcommands][, card_uri])

현재 인증된 사용자의 Status를 업데이트합니다. 흔히 '트윗을 작성한다'라고 불립니다.

Status 업데이트를 시도할 때 마다, 포함된 텍스트를 현재 인증된 사용자의 가장 최근 트윗과 비교합니다. 이에 따라, 중복된 업데이트 시도를 차단할 수 있으며, 이를 성공적으로 차단한 후에는 403 에러를 반환합니다. (참고: 사용자는 같은 Status 객체를 두 번 이상 연속해 게시할 수 없습니다.)

트위터 API상에서의 제한은 초과하지 않았으나, 사용자의 일일 트윗 작성 제한수를 초과하는 경우가 발생할 수 있습니다. 업데이트 시도가 이 제한을 초과할 경우에도, HTTP 403 에러를 반환받을 것입니다.

매개 변수:
  • status -- 포함된 텍스트. Status 업데이트(트윗 작성)에 쓰입니다.
  • in_reply_to_status_id -- 답글을 작성할 대상 트윗의 ID. (참고: 따로 값을 전달하지 않으면, 이 매개변수는 무시됩니다. 따라서, @username를 반드시 포함해야 하며, 이는 대상 트윗을 작성한 사람의 @username 이어야 합니다.)
  • auto_populate_reply_metadata -- True로 설정되고 in_reply_to_status_id와 같이 사용되었을 경우, 원본 트윗에 달린 답글 @멘션을 찾아, 새 트윗을 그 곳에 추가합니다. @멘션은 @멘션 갯수 제한 이하에서, 트윗 타래가 '확장된 트윗들의 메타데이터 형태'로 사용될 것입니다. 원본 트윗이 삭제되었을 경우, 반환값 생성이 실패할 수 있습니다.
  • exclude_reply_user_ids -- auto_populate_reply_metadata와 같이 사용되었을 경우, 확장된 트윗(Extended Tweet)에서의 자동 생성된 멘션 대상 중 쉼표(,)로 구분된 사용자 ID를 삭제합니다. 답글 대상 멘션 대상은 제거될 수 없습니다. 이는 in_reply_to_status_id의 의미를 깨트릴 수 있습니다. 따라서 이 @멘션 ID를 제거하려는 시도는 무시됩니다.
  • attachment_url -- URL이 Status 객체 중 확장된 트윗의 텍스트에 포함되지 않도록, 트윗에 첨부되는 형식으로 제공합니다. 이 URL은 트윗의 링크(Permalink) 또는 다이렉트 메세지(DM)의 깊은(Deep) 링크여야 합니다. 단, 트위터와 관련 없는 임의의 URL은 포함됩니다. 즉, attachment_url에 트윗의 링크 또는 다이렉트 메세지의 깊은 링크가 아닐 경우, 트윗 생성에 실패하며 예외를 발생시킬 것입니다.
  • media_ids -- 트윗과 연결할 media_ids 의 리스트. 트윗 하나당 최대 4개의 이미지나 1개의 움직이는 GIF 형식의 이미지, 또는 1개의 동영상만을 포함시킬 수 있습니다.
  • possibly_sensitive -- 민감한 콘텐츠인지 아닌지의 여부. 나체 사진 또는 수술 과정 사진 등의, 민감한 내용으로 여겨질 수 있는 미디어를 업로드할 경우 반드시 이 속성값을 True로 설정해야 합니다.
  • lat -- 이 트윗이 가리킬 위치의 위도. -90.0 ~ +90.0 (북반구가 양수값) 범위 밖의 값은 무시되며, 아래의 long 매개변수가 지정되지 않은 경우에도 무시됩니다.
  • long -- 이 트윗이 가리킬 위치의 경도. -180.0 ~ +180.0 (동쪽이 양수값) 범위 밖의 값, 숫자 이외의 값이 입력될 경우 무시되며, geo_enabled 가 비활성화 되었거나, 위의 lat 매개변수가 지정되지 않은 경우에도 전달된 값이 무시됩니다.
  • place_id -- (사용자가 위치 정보를 사용할 수 있는 경우) 트윗이 작성된 위치의 정보 (ID).
  • display_coordinates -- 트윗이 작성되어 전송된 위치를 표시할지 말지의 여부.
  • trim_user -- 유저 ID가 반드시 유저 객체 대신 제공되어야 하는지를 나타내는 boolean 형태의 변수. 기본값은 False.
  • enable_dmcommands -- True로 설정하면, Status 객체를 다이렉트 메세지로 사용자에게 보낼 때 텍스트의 일부를 숏코드 커맨드(Shortcode Command)로 대체하여 보냅니다. False로 설정하면, Status 객체를 다이렉트 메세지로 사용자에게 보낼 때, 위와 같은 변환 과정을 거치지 않고 텍스트 그대로를 보냅니다.
  • fail_dmcommands -- True로 설정하면, 숏코드 커맨드로 시작하는 Status 텍스트가 API 에러를 발생시킬 것입니다. False로 설정하면, Status 객체의 텍스트가 숏코드 커맨드로 시작하는 것을 허용하고, API에 의해 동작하는 것을 허용할 것입니다.
  • card_uri -- 트윗에 card_uri 속성을 이용하여 광고 카드를 추가합니다.
반환 형식:

Status 객체

API.update_with_media(filename[, status][, in_reply_to_status_id][, auto_populate_reply_metadata][, lat][, long][, source][, place_id][, file])

더 이상 사용되지 않음: API.media_upload() 를 대신 사용하세요. 현재 인증된 사용자의 Status를 미디어와 함께 업데이트합니다. 중복된 Status 작성 시도 또는 너무 긴 트윗의 작성 시도는 별다른 경고 없이 무시될 것입니다.

매개 변수:
  • filename -- 업로드할 이미지의 이름. file 이 따로 지정된 것이 아니라면, 자동으로 열릴 것입니다.
  • status -- 포함된 텍스트. Status 업데이트(트윗 작성)에 쓰입니다.
  • in_reply_to_status_id -- 답글을 작성할 대상 트윗의 ID.
  • auto_populate_reply_metadata -- Status 메타데이터에 @멘션들을 포함할지의 여부
  • lat -- 이 트윗이 가리킬 위치의 위도.
  • long -- 이 트윗이 가리킬 위치의 경도.
  • source -- 업데이트에 사용할 소스. Identi.ca 에서만 지원되며, 트위터는 이 매개변수를 무시합니다.
  • place_id -- (사용자가 위치 정보를 사용할 수 있는 경우) 트윗이 작성된 위치의 정보 (ID).
  • file -- 파일 객체로, filename 를 직접 여는 것 대신 사용됩니다. 물론 MIME 타입 감지 및 POST 데이터 형식의 필드로 filename 가 필요하기는 합니다.
반환 형식:

Status 객체

API.destroy_status(id)

지정한 Status 객체를 삭제합니다. 삭제하려는 Status 객체는 현재 인증된 사용자의 것이어야만 합니다.

매개 변수:id -- status의 ID.
반환 형식:Status 객체
API.retweet(id)

지정한 트윗을 리트윗합니다. 리트윗하려는 트윗의 ID를 필요로 합니다.

매개 변수:id -- status의 ID.
반환 형식:Status 객체
API.retweeters(id[, cursor][, stringify_ids])

매개변수 id 에 의해 지정된 트윗을 리트윗한 사용자의 ID 중, 최대 100개를 반환합니다.

매개 변수:
  • id -- status의 ID.
  • cursor -- 결과를 페이지로 나누며, 페이징을 시작하려면 -1 값을 입력해야 합니다. 응답 내용의 next_cursor와 previous_cursor 속성의 반환값을 입력해서 목록의 페이지를 앞뒤로 옮길 수 있습니다.
  • stringify_ids -- 사용자 ID를 정수 타입 대신 문자열 타입으로 반환받습니다.
반환 형식:

list of Integers

API.retweets(id[, count])

지정한 트윗의 리트윗 중 가장 최근의 100개까지를 반환합니다.

매개 변수:
  • id -- status의 ID.
  • count -- 가져올 리트윗의 갯수
반환 형식:

Status 객체 리스트

API.unretweet(id)

리트윗 Status를 취소(Untweet)합니다. 리트윗 취소할 트윗의 ID를 필요로 합니다.

매개 변수:id -- status의 ID.
반환 형식:Status 객체

User methods

API.get_user(id/user_id/screen_name)

지정한 사용자의 정보를 반환합니다.

매개 변수:
  • id -- 사용자 일련번호 또는 계정 이름.
  • user_id -- 사용자 일련번호. 어떤 값이 유효한 사용자 아이디인지, 유효한 일련번호인지를 확실히 해야 할 때 도움이 됨.
  • screen_name -- 사용자 아이디(예: @pinkrabbit412에서의 pinkrabbit412 ). 어떤 값이 유효한 사용자 아이디인지, 유효한 일련번호인지를 확실히 해야 할 때 도움이 됨.
반환 형식:

User 객체

API.me()

현재 인증된 사용자의 정보를 반환합니다.

반환 형식:User 객체
API.friends([id/user_id/screen_name][, cursor][, skip_status][, include_user_entities])

대상 사용자의 팔로잉 목록을, 목록에 추가된 순서대로, 요청 1회당 최대 100개씩 반환합니다. `` id`` 또는 screen_name 을 통해 대상을 지정하지 않으면, 현재 인증된 사용자를 대상으로 합니다.

매개 변수:
  • id -- 사용자 일련번호 또는 계정 이름.
  • user_id -- 사용자 일련번호. 어떤 값이 유효한 사용자 아이디인지, 유효한 일련번호인지를 확실히 해야 할 때 도움이 됨.
  • screen_name -- 사용자 아이디(예: @pinkrabbit412에서의 pinkrabbit412 ). 어떤 값이 유효한 사용자 아이디인지, 유효한 일련번호인지를 확실히 해야 할 때 도움이 됨.
  • cursor -- 결과를 페이지로 나누며, 페이징을 시작하려면 -1 값을 입력해야 합니다. 응답 내용의 next_cursor와 previous_cursor 속성의 반환값을 입력해서 목록의 페이지를 앞뒤로 옮길 수 있습니다.
  • count -- 페이지 당 시도하고 검색할 결과의 수.
  • skip_status -- 반환된 유저 객체에 Statuses를 포함할지 말지의 여부. 기본값은 False(포함하기).
  • include_user_entities -- False로 설정하면 유저 객체 노드가 포함되지 않음. 기본값은 True.
반환 형식:

User 객체 리스트

API.followers([id/screen_name/user_id][, cursor])

대상 사용자의 팔로워 목록을, 목록에 추가된 순서대로, 요청 1회당 최대 100개씩 반환합니다. `` id`` 또는 screen_name 을 통해 대상을 지정하지 않으면, 현재 인증된 사용자를 대상으로 합니다.

매개 변수:
  • id -- 사용자 일련번호 또는 계정 이름.
  • user_id -- 사용자 일련번호. 어떤 값이 유효한 사용자 아이디인지, 유효한 일련번호인지를 확실히 해야 할 때 도움이 됨.
  • screen_name -- 사용자 아이디(예: @pinkrabbit412에서의 pinkrabbit412 ). 어떤 값이 유효한 사용자 아이디인지, 유효한 일련번호인지를 확실히 해야 할 때 도움이 됨.
  • cursor -- 결과를 페이지로 나누며, 페이징을 시작하려면 -1 값을 입력해야 합니다. 응답 내용의 next_cursor와 previous_cursor 속성의 반환값을 입력해서 목록의 페이지를 앞뒤로 옮길 수 있습니다.
  • count -- 페이지 당 시도하고 검색할 결과의 수.
  • skip_status -- 반환된 유저 객체에 Statuses를 포함할지 말지의 여부. 기본값은 False(포함하기).
  • include_user_entities -- False로 설정하면 유저 객체 노드가 포함되지 않음. 기본값은 True.
반환 형식:

User 객체 리스트

API.lookup_users([user_ids][, screen_names][, include_entities][, tweet_mode])

매개변수에 의한 검색 기준을 충족하는 사용자 객체를 요청 1회당 최대 100개씩 반환합니다.

이 메소드를 사용할때는 아래 사항을 참고하세요.

  • 비공개 설정된 사용자의 Status 객체 업데이트 내역을 보기 위해서는 해당 사용자를 팔로우하고 있는 상태여야 합니다. 팔로우하고 있지 않다면, 해당 Status 객체는 삭제될 것입니다.
  • 사용자 ID 또는 screen_name 의 순서는 반환받은 배열의 사용자 순서와 일치하지 않을 수 있습니다.
  • 요청한 사용자를 찾을 수 없거나, 계정이 정지 또는 삭제되었다면, 해당 계정은 결과값 리스트로 반환되지 않을 것입니다.
  • 검색 기준을 충족하는 결과가 아예 없을 경우, HTTP 404 오류가 발생합니다.
매개 변수:
  • user_ids -- 사용자 ID 리스트이며, ID는 요청 1회당 최대 100개까지만 허용됨.
  • screen_names -- `` screen_name`` 의 리스트이며, 이 역시 요청 1회당 최대 100개까지만 허용됨.
  • include_entities -- False로 설정하면 엔티티 노드를 포함하지 않음. 기본값은 True.
  • tweet_mode -- 인자로 compat 또는 extended를 넘길 수 있으며,각각 140자 이상의 데이터가 포함된 트윗에 대해 호환성 모드(Compatibility Mode)와 확장 모드(Extended Mode)를 제공합니다.
반환 형식:

User 객체 리스트

API.search_users(q[, count][, page])

트위터의 '사용자 검색' 과 동일한 검색 기능을 실행합니다. 이 API를 이용한 검색은, 트위터에서 제공하는 것과 동일한 검색 결과를 반환합니다. 단, 최대 첫 1000개의 결과만 가져올 수 있습니다.

매개 변수:
  • q -- The query to run against people search.
  • count -- 한 번에 가져올 결과의 수. 20보다 클 수 없습니
  • page -- 검색할 페이지. (참고: 페이지 매김 제한 있음)
반환 형식:

User 객체 리스트

쪽지(Direct Message, DM) 메소드

API.get_direct_message([id][, full_text])

지정한 쪽지를 반환합니다.

매개 변수:
  • id -- The id of the Direct Message event that should be returned.
  • full_text -- 메시지의 전문을 반환할지 말지의 여부를 나타내는 boolean형 인자. False라면 140자로 잘린 메시지 내용을 반환하게 됩니다. 기본값은 False.
반환 형식:

DirectMessage 객체

API.list_direct_messages([count][, cursor])

최근 30일 이내의 모든 DM의 내역(송수신 모두)을 반환합니다. 반환값은 시간 역순으로 정렬되어 있습니다.

매개 변수:
  • count -- 페이지 당 시도하고 검색할 결과의 수.
  • cursor -- 결과를 페이지로 나누며, 페이징을 시작하려면 -1 값을 입력해야 합니다. 응답 내용의 next_cursor와 previous_cursor 속성의 반환값을 입력해서 목록의 페이지를 앞뒤로 옮길 수 있습니다.
반환 형식:

DirectMessage 객체의 리스트

API.send_direct_message(recipient_id, text[, quick_reply_type][, attachment_type][, attachment_media_id])

현재 인증된 사용자의 계정으로, 지정한 사용자에게 쪽지를 보냅니다.

매개 변수:
  • recipient_id -- 쪽지를 받을 사용자의 ID.
  • text -- 쪽지의 내용(텍스트). 최대 10,000자까지 입력 가능.
  • quick_reply_type -- 사용자에게 표시할 빠른 응답 유형: * options - Options 객체의 배열(최대 20개) * text_input - Text Input 객체 * location - Location 객체
  • attachment_type -- 컨텐츠 첨부 유형. 미디어나 위치 등이 될 수 있음.
  • attachment_media_id -- 메시지와 연결할 미디어의 ID. 단, 쪽지는 하나의 미디어 ID만을 참조할 수 있음.
반환 형식:

DirectMessage 객체

API.destroy_direct_message(id)

ID 매개변수가 지정하는 쪽지를 삭제합니다. 삭제하기 위해서는 인증된 사용자가 해당 DM의 수신자여야 합니다. 단, 쪽지는 사용자가 제공받는 인터페이스에서만 제거됩니다. 다시 말해, 대화에 참여한 다른 사용자는 이 삭제 작업 이후에도 해당 DM에 접근할 수 있습니다.

매개 변수:id -- 삭제할 쪽지의 ID.
반환 형식:None

친구 관계 메소드

API.create_friendship(id/screen_name/user_id[, follow])

지정한 사용자와 친구를 맺습니다. (일명 팔로우)

매개 변수:
  • id -- 사용자 일련번호 또는 계정 이름.
  • screen_name -- 사용자 아이디(예: @pinkrabbit412에서의 pinkrabbit412 ). 어떤 값이 유효한 사용자 아이디인지, 유효한 일련번호인지를 확실히 해야 할 때 도움이 됨.
  • user_id -- 사용자 일련번호. 어떤 값이 유효한 사용자 아이디인지, 유효한 일련번호인지를 확실히 해야 할 때 도움이 됨.
  • follow -- 지정한 사용자를 팔로우하고, 해당 사용자에 대한 알림을 활성화합니다.
반환 형식:

User 객체

API.destroy_friendship(id/screen_name/user_id)

지정한 사용자를 친구 삭제 합니다. (일명 언팔로우)

매개 변수:
  • id -- 사용자 일련번호 또는 계정 이름.
  • screen_name -- 사용자 아이디(예: @pinkrabbit412에서의 pinkrabbit412 ). 어떤 값이 유효한 사용자 아이디인지, 유효한 일련번호인지를 확실히 해야 할 때 도움이 됨.
  • user_id -- 사용자 일련번호. 어떤 값이 유효한 사용자 아이디인지, 유효한 일련번호인지를 확실히 해야 할 때 도움이 됨.
반환 형식:

User 객체

API.show_friendship(source_id/source_screen_name, target_id/target_screen_name)

두 사용자의 관계에 대한 자세한 정보를 반환합니다.

매개 변수:
  • source_id -- 주 대상 사용자의 user_id
  • source_screen_name -- 주 대상 사용자의 screen_name
  • target_id -- 대상 사용자의 user_id
  • target_screen_name -- 대상 사용자의 screen_name
반환 형식:

Friendship 객체

API.lookup_friendships(user_ids/screen_names)

Returns the relationships of the authenticated user to the list of up to 100 screen_names or user_ids provided.

매개 변수:
  • user_ids -- 사용자 ID 리스트이며, ID는 요청 1회당 최대 100개까지만 허용됨.
  • screen_names -- `` screen_name`` 의 리스트이며, 이 역시 요청 1회당 최대 100개까지만 허용됨.
반환 형식:

Relationship object

API.friends_ids(id/screen_name/user_id[, cursor])

지정한 사용자가 팔로우한 사용자들의 ID를 담은 배열을 반환합니다.

매개 변수:
  • id -- 사용자 일련번호 또는 계정 이름.
  • screen_name -- 사용자 아이디(예: @pinkrabbit412에서의 pinkrabbit412 ). 어떤 값이 유효한 사용자 아이디인지, 유효한 일련번호인지를 확실히 해야 할 때 도움이 됨.
  • user_id -- 사용자 일련번호. 어떤 값이 유효한 사용자 아이디인지, 유효한 일련번호인지를 확실히 해야 할 때 도움이 됨.
  • cursor -- 결과를 페이지로 나누며, 페이징을 시작하려면 -1 값을 입력해야 합니다. 응답 내용의 next_cursor와 previous_cursor 속성의 반환값을 입력해서 목록의 페이지를 앞뒤로 옮길 수 있습니다.
반환 형식:

list of Integers

API.followers_ids(id/screen_name/user_id)

지정한 사용자를 팔로우하는 사용자들의 ID를 담은 배열을 반환합니다.

매개 변수:
  • id -- 사용자 일련번호 또는 계정 이름.
  • screen_name -- 사용자 아이디(예: @pinkrabbit412에서의 pinkrabbit412 ). 어떤 값이 유효한 사용자 아이디인지, 유효한 일련번호인지를 확실히 해야 할 때 도움이 됨.
  • user_id -- 사용자 일련번호. 어떤 값이 유효한 사용자 아이디인지, 유효한 일련번호인지를 확실히 해야 할 때 도움이 됨.
  • cursor -- 결과를 페이지로 나누며, 페이징을 시작하려면 -1 값을 입력해야 합니다. 응답 내용의 next_cursor와 previous_cursor 속성의 반환값을 입력해서 목록의 페이지를 앞뒤로 옮길 수 있습니다.
반환 형식:

list of Integers

계정 메소드

API.verify_credentials([include_entities][, skip_status][, include_email])

제출한 사용자의 계정 사용 자격이 유효한지 판별합니다.

매개 변수:
  • include_entities -- False로 설정하면 엔티티 노드를 포함하지 않음. 기본값은 True.
  • skip_status -- 반환된 유저 객체에 Statuses를 포함할지 말지의 여부. 기본값은 False(포함하기).
  • include_email -- True로 설정하면, 이메일이 문자열 형태로 User 객체에 포함되어 반환됩니다.
반환 형식:

자격이 유효하다면 User 객체, 아니라면 False

API.rate_limit_status()

지정한 리소스 그룹에 속하는 메소드들의 현재 한도 정보(Rate limit)를 반환합니다. 애플리케이션 전용 인증을 사용하고 있다면, 이 메소드의 응답은 애플리케이션 전용 인증 한도의 정보를 나타냅니다.

매개 변수:resources -- 현재 속도 제한의 처리를 알고 싶은 리소스 그룹을 쉼표(,)로 구분한 리스트
반환 형식:JSON 객체
API.update_profile_image(filename)

현재 인증된 사용자의 프로필 사진을 바꿉니다. 유효한 파일 형식은 다음과 같습니다: GIF, JPG, PNG

매개 변수:filename -- 업로드할 이미지 파일의 로컬 경로. 이외의 경로(URL 등)는 지원되지 않습니다.
반환 형식:User 객체
API.update_profile_background_image(filename)

현재 인증된 사용자의 배경 사진(헤더)을 바꿉니다. 유효한 파일 형식은 다음과 같습니다: GIF, JPG, PNG

매개 변수:filename -- 업로드할 이미지 파일의 로컬 경로. 이외의 경로(URL 등)는 지원되지 않습니다.
반환 형식:User 객체
API.update_profile([name][, url][, location][, description])

설정 페이지의 "계정" 탭에서 설정할 수 있는 값을 설정합니다.

매개 변수:
  • name -- 최대 20자.
  • url -- 최대 100글자."http://"가 없는 경우 덧붙입니다.
  • location -- 최대 30자.
  • description -- 최대 160자.
반환 형식:

User 객체

마음에 들어요 메소드

API.favorites([id][, page])

인증된 사용자 또는 ID 매개변수로 특정되는 사용자가 마음에 들어요를 누른 Status들을 반환합니다.

매개 변수:
  • id -- 마음에 들어요 목록을 요청할 사용자의 ID나 screen_name
  • page -- 검색할 페이지. (참고: 페이지 매김 제한 있음)
반환 형식:

Status 객체 리스트

API.create_favorite(id)

ID로 지정한 Status에, 현재 인증된 사용자 계정으로 마음에 들어요를 누릅니다.

매개 변수:id -- status의 ID.
반환 형식:Status 객체
API.destroy_favorite(id)

ID로 지정한 Status에, 현재 인증된 사용자 계정으로 마음에 들어요를 취소합니다.

매개 변수:id -- status의 ID.
반환 형식:Status 객체

차단 메소드

API.create_block(id/screen_name/user_id)

ID로 지정한 사용자를, 현재 인증된 사용자의 계정에서 차단합니다.차단한 사용자를 팔로우하는 중이라면, 자동적으로 언팔로우 합니다.

매개 변수:
  • id -- 사용자 일련번호 또는 계정 이름.
  • screen_name -- 사용자 아이디(예: @pinkrabbit412에서의 pinkrabbit412 ). 어떤 값이 유효한 사용자 아이디인지, 유효한 일련번호인지를 확실히 해야 할 때 도움이 됨.
  • user_id -- 사용자 일련번호. 어떤 값이 유효한 사용자 아이디인지, 유효한 일련번호인지를 확실히 해야 할 때 도움이 됨.
반환 형식:

User 객체

API.destroy_block(id/screen_name/user_id)

ID로 지정한 사용자를, 현재 인증된 사용자의 계정에서 차단 해제합니다.

매개 변수:
  • id -- 사용자 일련번호 또는 계정 이름.
  • screen_name -- 사용자 아이디(예: @pinkrabbit412에서의 pinkrabbit412 ). 어떤 값이 유효한 사용자 아이디인지, 유효한 일련번호인지를 확실히 해야 할 때 도움이 됨.
  • user_id -- 사용자 일련번호. 어떤 값이 유효한 사용자 아이디인지, 유효한 일련번호인지를 확실히 해야 할 때 도움이 됨.
반환 형식:

User 객체

API.blocks([page])

현재 인증된 사용자가 차단한 계정을 User 객체의 배열 형태로 반환합니다.

매개 변수:page -- 검색할 페이지. (참고: 페이지 매김 제한 있음)
반환 형식:User 객체 리스트
API.blocks_ids([cursor])

현재 인증된 사용자가 차단한 계정을 ID의 배열 형태로 반환합니다.

매개 변수:cursor -- 결과를 페이지로 나누며, 페이징을 시작하려면 -1 값을 입력해야 합니다. 응답 내용의 next_cursor와 previous_cursor 속성의 반환값을 입력해서 목록의 페이지를 앞뒤로 옮길 수 있습니다.
반환 형식:list of Integers

뮤트 메소드

API.create_mute(id/screen_name/user_id)

ID로 지정한 사용자를, 현재 인증된 사용자의 계정에서 뮤트합니다.

매개 변수:
  • id -- 사용자 일련번호 또는 계정 이름.
  • screen_name -- 사용자 아이디(예: @pinkrabbit412에서의 pinkrabbit412 ). 어떤 값이 유효한 사용자 아이디인지, 유효한 일련번호인지를 확실히 해야 할 때 도움이 됨.
  • user_id -- 사용자 일련번호. 어떤 값이 유효한 사용자 아이디인지, 유효한 일련번호인지를 확실히 해야 할 때 도움이 됨.
반환 형식:

User 객체

API.destroy_mute(id/screen_name/user_id)

ID로 지정한 사용자를, 현재 인증된 사용자의 계정에서 뮤트 해제합니다.

매개 변수:
  • id -- 사용자 일련번호 또는 계정 이름.
  • screen_name -- 사용자 아이디(예: @pinkrabbit412에서의 pinkrabbit412 ). 어떤 값이 유효한 사용자 아이디인지, 유효한 일련번호인지를 확실히 해야 할 때 도움이 됨.
  • user_id -- 사용자 일련번호. 어떤 값이 유효한 사용자 아이디인지, 유효한 일련번호인지를 확실히 해야 할 때 도움이 됨.
반환 형식:

User 객체

API.mutes([cursor][, include_entities][, skip_status])

현재 인증된 사용자가 뮤트한 계정을 User 객체의 배열 형태로 반환합니다.

매개 변수:
  • cursor -- 결과를 페이지로 나누며, 페이징을 시작하려면 -1 값을 입력해야 합니다. 응답 내용의 next_cursor와 previous_cursor 속성의 반환값을 입력해서 목록의 페이지를 앞뒤로 옮길 수 있습니다.
  • include_entities -- False로 설정하면 엔티티 노드를 포함하지 않음. 기본값은 True.
  • skip_status -- 반환된 유저 객체에 Statuses를 포함할지 말지의 여부. 기본값은 False(포함하기).
반환 형식:

User 객체 리스트

API.mutes_ids([cursor])

현재 인증된 사용자가 차단한 계정을 ID의 배열 형태로 반환합니다.

매개 변수:cursor -- 결과를 페이지로 나누며, 페이징을 시작하려면 -1 값을 입력해야 합니다. 응답 내용의 next_cursor와 previous_cursor 속성의 반환값을 입력해서 목록의 페이지를 앞뒤로 옮길 수 있습니다.
반환 형식:list of Integers

스팸 신고 메소드

API.report_spam(id/screen_name/user_id[, perform_block])

ID로 지정한 사용자를 현재 인증된 사용자의 계정에서 차단하고, 스팸 계정으로 트위터에 신고합니다.

매개 변수:
  • id -- 사용자 일련번호 또는 계정 이름.
  • screen_name -- 사용자 아이디(예: @pinkrabbit412에서의 pinkrabbit412 ). 어떤 값이 유효한 사용자 아이디인지, 유효한 일련번호인지를 확실히 해야 할 때 도움이 됨.
  • user_id -- 사용자 일련번호. 어떤 값이 유효한 사용자 아이디인지, 유효한 일련번호인지를 확실히 해야 할 때 도움이 됨.
  • perform_block -- 신고한 계정을 차단할지 말지의 여부를 나타내는 boolean 형태의 변수. 기본값은 True.
반환 형식:

User 객체

검색어 저장 메소드

API.saved_searches()

현재 인증된 사용자 계정에 저장된 검색어 쿼리를 반환합니다.

반환 형식:SavedSearch 객체의 리스트

ID로 지정한, 인증된 사용자의 계정에 저장된 검색어로 검색을 수행합니다.

매개 변수:id -- 검색할 검색어의 ID
반환 형식:SavedSearch 객체

현재 인증된 사용자의 계정에 새 검색어를 저장합니다.

매개 변수:query -- 저장하고 싶은 검색어의 쿼리
반환 형식:SavedSearch 객체

인증된 사용자의 계정에서 ID로 지정한 검색어를 삭제합니다. 삭제하려는 검색어는 인증된 사용자의 계정에 저장된 검색어여야만 합니다.

매개 변수:id -- 삭제할 검색어의 ID
반환 형식:SavedSearch 객체

편의 기능 메소드

API.search(q[, geocode][, lang][, locale][, result_type][, count][, until][, since_id][, max_id][, include_entities])

지정한 쿼리와 관련된 트윗의 모음을 반환합니다.

트위터의 검색 서비스 및 검색 API가 모든 트윗을 대상으로 검색 작업을 수행하는 것은 아니라는 것을 유의하세요. 모든 트윗이 검색 인터페이스를 통해 색인화 되어있거나 검색할 수 있게 만들어져 있지는 않습니다.

API v1.1에서는, 검색 API의 응답 형식이 REST API나 플랫폼을 통해서 볼 수 있는 객체와 더 비슷한 트윗 객체를 반환하도록 향상되었습니다. 하지만, perspectival 속성(인증된 사용자에 의존하는 필드)은 현재 지원하지 않습니다.[1][2]

매개 변수:
  • q -- 연산자를 포함하여 최대 500자의 검색하고자 하는 문자열 쿼리. 쿼리는 추가적으로 복잡도에 따라 제한될 수 있습니다.
  • geocode -- 주어진 위도, 경도의 주어진 반경 내에 위치한 사용자의 트윗만 반환합니다. 위치는 우선적으로 위치 정보 삽입 API에서 받아오지만, 트위터 프로필 내의 정보로 대체할 수 있습니다. 매개변수의 값은 "위도, 경도, 반경"의 형태로 지정되며, 반경은 "mi"(마일) 또는 "km"(킬로미터) 단위로 주어져야 합니다. API를 통해 근거리 연산자를 사용하여 임의의 위치를 geocode로 입력할 수는 없다는 점을 유의해주세요. 다만 이 geocode 매개변수를 통해 근처의 지오코드를 검색할 수는 있습니다. 반경 수식어를 사용할 경우에는 최대 1,000개의 분명하게 구분되는 "하위 영역"을 고려할 할 것입니다.
  • lang -- 트윗을 ISO 639-1 코드로 주어진 언어로 제한합니다. 언어 감지가 적절하게 작동했다고 전제합니다.
  • locale -- 전송한 쿼리의 언어를 명시하세요. (현재는 ja만 유효합니다.) 이는 언어별 사용자를 위한 것이며 대부분의 경우엔 기본값이 적용됩니다.
  • result_type -- 얻고 싶은 검색 결과의 형식에 대해 명시하세요. 현재 기본값은 "mixed"이며, 유효한 값은 다음과 같습니다: * "mixed": 응답에 인기 결과와 실시간 결과 모두를 포함합니다.* "recent": 응답으로 가장 최근의 결과만을 반환합니다.* "popular": 응답으로 가장 인기 있는 결과만을 반환합니다.
  • count -- 페이지 당 시도하고 검색할 결과의 수.
  • until -- 주어진 날짜 이전에 작성된 트윗을 반환합니다. 날짜는 YYYY-MM-DD의 형식으로 주어져야 합니다. 검색 색인은 7일 간만 유지됩니다. 다시 말해, 일주일 이상 지난 트윗은 찾을 수 없습니다.
  • since_id -- Returns only statuses with an ID greater than (that is, more recent than) the specified ID. API를 통해서 접근할 수 있는 트윗의 수에는 제한이 있습니다. since_id 이후로 트윗 수 제한을 초과한다면, since_id 는 제한을 초과하지 않는 가장 오래된 ID로 강제 설정됩니다.
  • max_id -- 지정한 ID보다 더 작은 ID값을 가지는 객체(즉, 지정한 객체보다 더 이전의 객체)만을 반환함.
  • include_entities -- False로 설정하면 엔티티 노드를 포함하지 않음. 기본값은 True.
반환 형식:

SearchResults 객체

리스트 메소드

API.create_list(name[, mode][, description])

현재 인증된 사용자 계정에 새 리스트를 만듭니다. 리스트는 계정 당 최대 1000개까지만 생성 가능함을 유의하세요.

매개 변수:
  • name -- 새 리스트의 이름
  • mode -- 리스트의 공개 또는 비공개 여부. 인자로는 공개(public) 및 비공개(private)를 전달할 수 있으며, 기본값은 public.
  • description -- 새 리스트의 설명.
반환 형식:

List 객체

API.destroy_list([owner_screen_name/owner_id, ]list_id/slug)

지정한 리스트를 삭제합니다. 삭제를 위해서는, 현재 인증된 사용자가 해당 리스트의 소유자여야 합니다.

매개 변수:
  • owner_screen_name -- 슬러그에 의해 요청되는, 리스트 소유자인 사용자의 계정 이름.
  • owner_id -- 슬러그에 의해 요청되는, 목록을 소유한 사용자의 ID.
  • list_id -- 리스트의 ID.
  • slug -- 리스트 지정에 리스트 ID(`` list_id`` ) 대신 사용할 수 있습니다. 이를 사용할 경우, owner_id 또는 owner_screen_name 매개변수를 통해 목록 소유자도 지정해 주어야 함을 유의하세요.
반환 형식:

List 객체

API.update_list(list_id/slug[, name][, mode][, description][, owner_screen_name/owner_id])

지정한 리스트의 정보를 수정합니다. 갱신을 위해서는, 현재 인증된 사용자가 해당 리스트의 소유자여야 합니다.

매개 변수:
  • list_id -- 리스트의 ID.
  • slug -- 리스트 지정에 리스트 ID(`` list_id`` ) 대신 사용할 수 있습니다. 이를 사용할 경우, owner_id 또는 owner_screen_name 매개변수를 통해 목록 소유자도 지정해 주어야 함을 유의하세요.
  • name -- 리스트의 이름.
  • mode -- 리스트의 공개 또는 비공개 여부. 인자로는 공개(public) 및 비공개(private)를 전달할 수 있으며, 기본값은 public.
  • description -- 리스트의 설명.
  • owner_screen_name -- 슬러그에 의해 요청되는, 리스트 소유자인 사용자의 계정 이름.
  • owner_id -- 슬러그에 의해 요청되는, 목록을 소유한 사용자의 ID.
반환 형식:

List 객체

API.lists_all([screen_name][, user_id][, reverse])

Returns all lists the authenticating or specified user subscribes to, including their own. The user is specified using the user_id or screen_name parameters. If no user is given, the authenticating user is used.

A maximum of 100 results will be returned by this call. Subscribed lists are returned first, followed by owned lists. This means that if a user subscribes to 90 lists and owns 20 lists, this method returns 90 subscriptions and 10 owned lists. The reverse method returns owned lists first, so with reverse=true, 20 owned lists and 80 subscriptions would be returned.

매개 변수:
  • screen_name -- 사용자 아이디(예: @pinkrabbit412에서의 pinkrabbit412 ). 어떤 값이 유효한 사용자 아이디인지, 유효한 일련번호인지를 확실히 해야 할 때 도움이 됨.
  • user_id -- 사용자 일련번호. 어떤 값이 유효한 사용자 아이디인지, 유효한 일련번호인지를 확실히 해야 할 때 도움이 됨.
  • reverse -- 소유 중인 리스트를 먼저 반환받을지의 여부. 기본값은 False.
반환 형식:

List 객체의 리스트

API.lists_memberships([screen_name][, user_id][, filter_to_owned_lists][, cursor][, count])

Returns the lists the specified user has been added to. If user_id or screen_name are not provided, the memberships for the authenticating user are returned.

매개 변수:
  • screen_name -- 사용자 아이디(예: @pinkrabbit412에서의 pinkrabbit412 ). 어떤 값이 유효한 사용자 아이디인지, 유효한 일련번호인지를 확실히 해야 할 때 도움이 됨.
  • user_id -- 사용자 일련번호. 어떤 값이 유효한 사용자 아이디인지, 유효한 일련번호인지를 확실히 해야 할 때 도움이 됨.
  • filter_to_owned_lists -- A boolean indicating whether to return just lists the authenticating user owns, and the user represented by user_id or screen_name is a member of.
  • cursor -- 결과를 페이지로 나누며, 페이징을 시작하려면 -1 값을 입력해야 합니다. 응답 내용의 next_cursor와 previous_cursor 속성의 반환값을 입력해서 목록의 페이지를 앞뒤로 옮길 수 있습니다.
  • count -- 페이지 당 시도하고 검색할 결과의 수.
반환 형식:

List 객체의 리스트

API.lists_subscriptions([screen_name][, user_id][, cursor][, count])

지정한 사용자가 팔로우하는 리스트들(기본적으로, 페이지 당 20개의 리스트가 있음)을 반환합니다. 단, 지정한 사용자가 소유하는 리스트는 포함되지 않습니다.

매개 변수:
  • screen_name -- 사용자 아이디(예: @pinkrabbit412에서의 pinkrabbit412 ). 어떤 값이 유효한 사용자 아이디인지, 유효한 일련번호인지를 확실히 해야 할 때 도움이 됨.
  • user_id -- 사용자 일련번호. 어떤 값이 유효한 사용자 아이디인지, 유효한 일련번호인지를 확실히 해야 할 때 도움이 됨.
  • cursor -- 결과를 페이지로 나누며, 페이징을 시작하려면 -1 값을 입력해야 합니다. 응답 내용의 next_cursor와 previous_cursor 속성의 반환값을 입력해서 목록의 페이지를 앞뒤로 옮길 수 있습니다.
  • count -- 페이지 당 시도하고 검색할 결과의 수.
반환 형식:

List 객체의 리스트

API.list_timeline(list_id/slug[, owner_id/owner_screen_name][, since_id][, max_id][, count][, include_entities][, include_rts])

Returns a timeline of tweets authored by members of the specified list. Retweets are included by default. Use the include_rts=false parameter to omit retweets.

매개 변수:
  • list_id -- 리스트의 ID.
  • slug -- 리스트 지정에 리스트 ID(`` list_id`` ) 대신 사용할 수 있습니다. 이를 사용할 경우, owner_id 또는 owner_screen_name 매개변수를 통해 목록 소유자도 지정해 주어야 함을 유의하세요.
  • owner_id -- 슬러그에 의해 요청되는, 목록을 소유한 사용자의 ID.
  • owner_screen_name -- 슬러그에 의해 요청되는, 리스트 소유자인 사용자의 계정 이름.
  • since_id -- 지정한 ID보다 더 큰 ID값을 가지는 객체(즉, 지정한 객체보다 더 최근의 객체)만을 반환함.
  • max_id -- 지정한 ID보다 더 작은 ID값을 가지는 객체(즉, 지정한 객체보다 더 이전의 객체)만을 반환함.
  • count -- 페이지 당 시도하고 검색할 결과의 수.
  • include_entities -- False로 설정하면 엔티티 노드를 포함하지 않음. 기본값은 True.
  • include_rts -- 타임라인에 리트윗을 포함할지 말지에 대한 여부를 나타내는 boolean 형태의 변수. 리트윗의 출력 형식은 홈 타임라인에서의 출력 형식과 동일합니다.
반환 형식:

Status 객체 리스트

API.get_list(list_id/slug[, owner_id/owner_screen_name])

지정한 리스트를 반환합니다. 비공개(`` private`` ) 리스트일 경우, 현재 인증된 사용자가 지정한 리스트의 소유자여야만 합니다.

매개 변수:
  • list_id -- 리스트의 ID.
  • slug -- 리스트 지정에 리스트 ID(`` list_id`` ) 대신 사용할 수 있습니다. 이를 사용할 경우, owner_id 또는 owner_screen_name 매개변수를 통해 목록 소유자도 지정해 주어야 함을 유의하세요.
  • owner_id -- 슬러그에 의해 요청되는, 목록을 소유한 사용자의 ID.
  • owner_screen_name -- 슬러그에 의해 요청되는, 리스트 소유자인 사용자의 계정 이름.
반환 형식:

List 객체

API.add_list_member(list_id/slug, screen_name/user_id[, owner_id/owner_screen_name])

리스트에 사용자를 추가합니다. 리스트의 소유자만이 가능한 작업이며, 최대 5,000명까지만 추가 가능합니다.

매개 변수:
  • list_id -- 리스트의 ID.
  • slug -- 리스트 지정에 리스트 ID(`` list_id`` ) 대신 사용할 수 있습니다. 이를 사용할 경우, owner_id 또는 owner_screen_name 매개변수를 통해 목록 소유자도 지정해 주어야 함을 유의하세요.
  • screen_name -- 사용자 아이디(예: @pinkrabbit412에서의 pinkrabbit412 ). 어떤 값이 유효한 사용자 아이디인지, 유효한 일련번호인지를 확실히 해야 할 때 도움이 됨.
  • user_id -- 사용자 일련번호. 어떤 값이 유효한 사용자 아이디인지, 유효한 일련번호인지를 확실히 해야 할 때 도움이 됨.
  • owner_id -- 슬러그에 의해 요청되는, 목록을 소유한 사용자의 ID.
  • owner_screen_name -- 슬러그에 의해 요청되는, 리스트 소유자인 사용자의 계정 이름.
반환 형식:

List 객체

API.add_list_members(list_id/slug, screen_name/user_id[, owner_id/owner_screen_name])

리스트에 사용자들을 추가합니다. 리스트의 소유자만이 가능한 작업이며, 최대 5,000명까지만 추가 가능합니다.

매개 변수:
  • list_id -- 리스트의 ID.
  • slug -- 리스트 지정에 리스트 ID(`` list_id`` ) 대신 사용할 수 있습니다. 이를 사용할 경우, owner_id 또는 owner_screen_name 매개변수를 통해 목록 소유자도 지정해 주어야 함을 유의하세요.
  • screen_name -- 쉼표(,)로 구분되는 screen_name 들. 한 번에 최대 100개까지만 처리할 수 있습니다.
  • user_id -- 쉼표(,)로 구분되는 user_id 들. 한 번에 최대 100개까지만 처리할 수 있습니다.
  • owner_id -- 슬러그에 의해 요청되는, 목록을 소유한 사용자의 ID.
  • owner_screen_name -- 슬러그에 의해 요청되는, 리스트 소유자인 사용자의 계정 이름.
반환 형식:

List 객체

API.remove_list_member(list_id/slug, screen_name/user_id[, owner_id/owner_screen_name])

리스트에서 지정한 사용자를 제거합니다. 리스트의 소유자만이 가능한 작업이며, 최대 5,000명까지만 추가 가능합니다.

매개 변수:
  • list_id -- 리스트의 ID.
  • slug -- 리스트 지정에 리스트 ID(`` list_id`` ) 대신 사용할 수 있습니다. 이를 사용할 경우, owner_id 또는 owner_screen_name 매개변수를 통해 목록 소유자도 지정해 주어야 함을 유의하세요.
  • screen_name -- 사용자 아이디(예: @pinkrabbit412에서의 pinkrabbit412 ). 어떤 값이 유효한 사용자 아이디인지, 유효한 일련번호인지를 확실히 해야 할 때 도움이 됨.
  • user_id -- 사용자 일련번호. 어떤 값이 유효한 사용자 아이디인지, 유효한 일련번호인지를 확실히 해야 할 때 도움이 됨.
  • owner_id -- 슬러그에 의해 요청되는, 목록을 소유한 사용자의 ID.
  • owner_screen_name -- 슬러그에 의해 요청되는, 리스트 소유자인 사용자의 계정 이름.
반환 형식:

List 객체

API.remove_list_members(list_id/slug, screen_name/user_id[, owner_id/owner_screen_name])

리스트에서 지정한 사용자들을 제거합니다. 리스트의 소유자만이 가능한 작업이며, 최대 5,000명까지만 추가 가능합니다.

매개 변수:
  • list_id -- 리스트의 ID.
  • slug -- 리스트 지정에 리스트 ID(`` list_id`` ) 대신 사용할 수 있습니다. 이를 사용할 경우, owner_id 또는 owner_screen_name 매개변수를 통해 목록 소유자도 지정해 주어야 함을 유의하세요.
  • screen_name -- 쉼표(,)로 구분되는 screen_name 들. 한 번에 최대 100개까지만 처리할 수 있습니다.
  • user_id -- 쉼표(,)로 구분되는 user_id 들. 한 번에 최대 100개까지만 처리할 수 있습니다.
  • owner_id -- 슬러그에 의해 요청되는, 목록을 소유한 사용자의 ID.
  • owner_screen_name -- 슬러그에 의해 요청되는, 리스트 소유자인 사용자의 계정 이름.
반환 형식:

List 객체

API.list_members(list_id/slug[, owner_id/owner_screen_name][, cursor])

지정한 리스트에 속한 사람들을 반환합니다.

매개 변수:
  • list_id -- 리스트의 ID.
  • slug -- 리스트 지정에 리스트 ID(`` list_id`` ) 대신 사용할 수 있습니다. 이를 사용할 경우, owner_id 또는 owner_screen_name 매개변수를 통해 목록 소유자도 지정해 주어야 함을 유의하세요.
  • owner_id -- 슬러그에 의해 요청되는, 목록을 소유한 사용자의 ID.
  • owner_screen_name -- 슬러그에 의해 요청되는, 리스트 소유자인 사용자의 계정 이름.
  • cursor -- 결과를 페이지로 나누며, 페이징을 시작하려면 -1 값을 입력해야 합니다. 응답 내용의 next_cursor와 previous_cursor 속성의 반환값을 입력해서 목록의 페이지를 앞뒤로 옮길 수 있습니다.
반환 형식:

User 객체 리스트

API.show_list_member(list_id/slug, screen_name/user_id[, owner_id/owner_screen_name])

지정한 사용자가, 지정한 리스트에 속해 있는지를 확인합니다.

매개 변수:
  • list_id -- 리스트의 ID.
  • slug -- 리스트 지정에 리스트 ID(`` list_id`` ) 대신 사용할 수 있습니다. 이를 사용할 경우, owner_id 또는 owner_screen_name 매개변수를 통해 목록 소유자도 지정해 주어야 함을 유의하세요.
  • screen_name -- 사용자 아이디(예: @pinkrabbit412에서의 pinkrabbit412 ). 어떤 값이 유효한 사용자 아이디인지, 유효한 일련번호인지를 확실히 해야 할 때 도움이 됨.
  • user_id -- 사용자 일련번호. 어떤 값이 유효한 사용자 아이디인지, 유효한 일련번호인지를 확실히 해야 할 때 도움이 됨.
  • owner_id -- 슬러그에 의해 요청되는, 목록을 소유한 사용자의 ID.
  • owner_screen_name -- 슬러그에 의해 요청되는, 리스트 소유자인 사용자의 계정 이름.
반환 형식:

지정한 사용자가 지정한 리스트에 속해 있을 경우, User 객체

API.subscribe_list(list_id/slug[, owner_id/owner_screen_name])

지정한 리스트를, 현재 인증된 사용자의 계정을 이용해 팔로우합니다.

매개 변수:
  • list_id -- 리스트의 ID.
  • slug -- 리스트 지정에 리스트 ID(`` list_id`` ) 대신 사용할 수 있습니다. 이를 사용할 경우, owner_id 또는 owner_screen_name 매개변수를 통해 목록 소유자도 지정해 주어야 함을 유의하세요.
  • owner_id -- 슬러그에 의해 요청되는, 목록을 소유한 사용자의 ID.
  • owner_screen_name -- 슬러그에 의해 요청되는, 리스트 소유자인 사용자의 계정 이름.
반환 형식:

List 객체

API.unsubscribe_list(list_id/slug[, owner_id/owner_screen_name])

지정한 리스트를, 현재 인증된 사용자의 계정을 이용해 언팔로우합니다.

매개 변수:
  • list_id -- 리스트의 ID.
  • slug -- 리스트 지정에 리스트 ID(`` list_id`` ) 대신 사용할 수 있습니다. 이를 사용할 경우, owner_id 또는 owner_screen_name 매개변수를 통해 목록 소유자도 지정해 주어야 함을 유의하세요.
  • owner_id -- 슬러그에 의해 요청되는, 목록을 소유한 사용자의 ID.
  • owner_screen_name -- 슬러그에 의해 요청되는, 리스트 소유자인 사용자의 계정 이름.
반환 형식:

List 객체

API.list_subscribers(list_id/slug[, owner_id/owner_screen_name][, cursor][, count][, include_entities][, skip_status])

지정한 리스트를 팔로우하는 사용자들을 반환합니다. 비공개(`` private`` ) 리스트일 경우, 현재 인증된 사용자가 지정한 리스트의 소유자여야만 합니다.

매개 변수:
  • list_id -- 리스트의 ID.
  • slug -- 리스트 지정에 리스트 ID(`` list_id`` ) 대신 사용할 수 있습니다. 이를 사용할 경우, owner_id 또는 owner_screen_name 매개변수를 통해 목록 소유자도 지정해 주어야 함을 유의하세요.
  • owner_id -- 슬러그에 의해 요청되는, 목록을 소유한 사용자의 ID.
  • owner_screen_name -- 슬러그에 의해 요청되는, 리스트 소유자인 사용자의 계정 이름.
  • cursor -- 결과를 페이지로 나누며, 페이징을 시작하려면 -1 값을 입력해야 합니다. 응답 내용의 next_cursor와 previous_cursor 속성의 반환값을 입력해서 목록의 페이지를 앞뒤로 옮길 수 있습니다.
  • count -- 페이지 당 시도하고 검색할 결과의 수.
  • include_entities -- False로 설정하면 엔티티 노드를 포함하지 않음. 기본값은 True.
  • skip_status -- 반환된 유저 객체에 Statuses를 포함할지 말지의 여부. 기본값은 False(포함하기).
반환 형식:

User 객체 리스트

API.show_list_subscriber(list_id/slug, screen_name/user_id[, owner_id/owner_screen_name])

지정한 사용자가, 지정한 리스트를 팔로우하고 있는지를 확인합니다.

매개 변수:
  • list_id -- 리스트의 ID.
  • slug -- 리스트 지정에 리스트 ID(`` list_id`` ) 대신 사용할 수 있습니다. 이를 사용할 경우, owner_id 또는 owner_screen_name 매개변수를 통해 목록 소유자도 지정해 주어야 함을 유의하세요.
  • screen_name -- 사용자 아이디(예: @pinkrabbit412에서의 pinkrabbit412 ). 어떤 값이 유효한 사용자 아이디인지, 유효한 일련번호인지를 확실히 해야 할 때 도움이 됨.
  • user_id -- 사용자 일련번호. 어떤 값이 유효한 사용자 아이디인지, 유효한 일련번호인지를 확실히 해야 할 때 도움이 됨.
  • owner_id -- 슬러그에 의해 요청되는, 목록을 소유한 사용자의 ID.
  • owner_screen_name -- 슬러그에 의해 요청되는, 리스트 소유자인 사용자의 계정 이름.
반환 형식:

지정한 사용자가 지정한 리스트를 팔로우할 경우, User 객체

위치 정보 메소드

API.reverse_geocode([lat][, long][, accuracy][, granularity][, max_results])

주어진 위도 및 경도를 바탕으로, :func:`update_status`를 호출해 지정된 ID가 가리키는 장소의 이름을 찾습니다.이 메소드는 위치 정보에 대한 정보를 상세히 제공하므로, 대략적인 정보가 필요할 경우에는 :func:`nearby_places`를 이용함이 권장됩니다.

매개 변수:
  • lat -- 어떤 위치의 위도.
  • long -- 어떤 위치의 경도.
  • accuracy -- 검색할 "region"을 지정하는 수 형태의 변수. 기본적으로 미터(m) 단위로 인식되나, 접미어 ft 를 통해 피트(ft) 단위로 인식되게 할 수 있습니다.기본값은 0(0m)입니다.
  • granularity -- Assumed to be neighborhood by default; can also be city.
  • max_results -- 반환값의 갯수. 허용 범위를 초과하는 값일 경우, 무시됩니다.
API.geo_id(id)

특정 *id*로 지정된 장소에 대한 자세한 정보를 제공합니다.

매개 변수:id -- 특정 위치에 대한, 유효한 Twitter ID.

유틸리티 메소드

API.configuration()

사용자 이름이 아닌 twitter.com 슬러그, 최대 사진 해상도, t.co 단축된 URL 길이 등을 포함하는, 트위터에서 사용 중인 현재 설정값들을 반환합니다. 응용 프로그램이 로드될 때 이를 요청하는 것이 추천되나, 하루에 1번 이상 요청하지 않는 것이 좋습니다.

미디어 메소드

API.media_upload(filename[, file])

이 메소드를 사용해 트위터에 이미지를 업로드할 수 있습니다.

매개 변수:
  • filename -- The filename of the image to upload. This will automatically be opened unless file is specified.
  • file -- A file object, which will be used instead of opening filename. filename is still required, for MIME type detection and to use as a form field in the POST data.
반환 형식:

Media 객체

API.create_media_metadata(media_id, alt_text)

이 메소드는 업로드된 media_id 에 대한 추가적인 정보를 제공하는 데 사용될 수 있습니다.이 기능은 현재 이미지 및 GIF에서만 지원되며, 이미지의 alt 텍스트와 같은 추가적인 메타데이터를 첨부하려면 이 메소드를 사용하세요.

매개 변수:
  • media_id -- alt 텍스트를 추가할 미디어의 ID.
  • alt_text -- 이미지에 추가할 alt 텍스트.

tweepy.error --- 예외

The exceptions are available in the tweepy module directly, which means tweepy.error itself does not need to be imported. For example, tweepy.error.TweepError is available as tweepy.TweepError.

exception TweepError

Tweepy가 사용하는 주요 예외. 발생 이유는 많습니다.

When a TweepError is raised due to an error Twitter responded with, the error code (as described in the API documentation) can be accessed at TweepError.response.text. Note, however, that TweepErrors also may be raised with other things as message (for example plain error reason strings).

exception RateLimitError

API 메소드 호출이 트위터의 한도 제한(Rate Limit)에 도달하여 실패할 때 발생합니다. 한도 제한 관련 예외를 쉽게 다룰 수 있도록 특별히 제작했습니다.

Inherits from TweepError, so except TweepError will catch a RateLimitError too.

각주

[1]https://web.archive.org/web/20170829051949/https://dev.twitter.com/rest/reference/get/search/tweets
[2]https://twittercommunity.com/t/favorited-reports-as-false-even-if-status-is-already-favorited-by-the-user/11145

테스트 하기

다음은 Tweepy에서 어떻게 테스트를 진행할 수 있는가에 대한 대략적인 설명입니다.

  1. Tweepy 소스코드를 다운로드합니다.
  2. 다운로드한 소스코드를 test 의 추가 정보를 사용, 설치하세요. (예시: pip install .[test] ) 추가적으로 toxcoverage 의 사용이 필요하다면 dev 추가 정보와 같이 설치해주세요. (예시: pip install .[dev,test] )
  3. 소스 디렉토리에서 python setup.py nonsetests 또는 간단하게 nonsetests 를 실행시키세요. dev 추가 정보를 포함했다면 coverage 를 볼 수 있으며, tox 를 이용해 다른 버전의 파이썬으로 실행할 수도 있습니다.

새 카세트를 기록하기 위해서는, 아래 환경 변수들을 사용할 수 있어야 합니다:

TWITTER_USERNAME CONSUMER_KEY CONSUMER_SECRET ACCESS_KEY ACCESS_SECRET USE_REPLAY

간단하게 USE_REPLAYFalse 로 설정하고, 앱, 계정 자격 증명, 사용자 이름을 제공해도 됩니다.

인덱스와 Tables