본문 바로가기
Project/Blog New Post Noti

[New Post Noti] Python으로 트윗을 작성하기

by Haren 2021. 9. 3.

지난 포스팅에서는 파이썬에서 트위터를 제어하기 위한 패키지인 Tweepy에 대해서 알아보았다.

파이썬으로 트윗 봇을 만드려면 Tweepy 설치가 선행되어야 하므로, 아직 설치하지 않았다면 지난 포스팅을 통해 설치를 하자.

 

>_ 지난 포스팅 보기

 

[Blog New Post Noti] 파이썬 트위터 패키지 Tweepy

지난 포스팅에서는 자동 트윗 봇을 만들기 위해 트위터 앱을 만드는 방법을 알아봤다. >_지난 포스팅 보기 [Blog New Post Noti] 트위터 API를 사용해보자 (2) - 트위터 API 발급받기 지난 「트위터 API를

heibondk.tistory.com

이번 포스팅에서는 파이썬에서 Tweepy 패키지를 이용해서 트윗을 작성하는 방법에 대해서 알아보고자 한다.

 


1. 트위터 앱의 API 준비하기

 

[Blog New Post Noti] 트위터 API를 사용해보자 (2) - 트위터 API 발급받기

지난 「트위터 API를 사용해보자 (1) - 트위터 개발자 계정 신청하기」 에서는 트위터 개발자 계정을 신청하고,승인을 기다리는 내용까지 다뤄보았다. 해당 내용이 필요하다면 아래 링크의 포스

heibondk.tistory.com

위 포스팅처럼 트위터 앱을 만들어서 컨슈머 키, 컨슈머 키 시크릿, 접근(엑세스) 토큰, 접근(엑세스) 토큰 시크릿을 준비해주자.

 

위 포스팅에서 설명용으로 만들었던 트위터 앱이 이미 있으므로, 이것을 사용하도록 하겠다. API 키값들은 따로 저장해두었을테니 그것을 이용하자.

 

2. Python 예제 코드

import tweepy

def update_tweet(tweet):
        api_key = #'컨슈머 키'
        api_key_secret = #'컨슈머 키 시크릿'
        access_token = #'앱의 엑세스 토큰'
        access_token_secret = #'앱의 엑세스 토큰 시크릿'

        auth = tweepy.OAuthHandler(api_key, api_key_secret)
        auth.set_access_token(access_token, access_token_secret)
        api = tweepy.API(auth)
        api.update_status(tweet)
        
update_tweet('예제를 작성해봅시다.')

update_tweet() 함수 안에서 컨슈머 키, 컨슈머 키 시크릿, 앱의 접근(엑세스) 토큰, 앱의 접근(엑세스) 토큰 시크릿 이 네 개의 값을 넣어준다는 것을 확인 할 수 있다. 이 부분에는 자신의 값을 넣어주되, 문자열을 직접 넣을 경우에는 작은 따옴표 (' ')를 잊지말자. 

 

코드를 자세히 살펴보자.

import tweepy

맨 윗줄에서는 tweepy 패키지의 기능들을 사용하기 위해 import를 해주고 있다.

 

def update_tweet(tweet):
        api_key = #'컨슈머 키'
        api_key_secret = #'컨슈머 키 시크릿'
        access_token = #'앱의 엑세스 토큰'
        access_token_secret = #'앱의 엑세스 토큰 시크릿'

        auth = tweepy.OAuthHandler(api_key, api_key_secret)
        auth.set_access_token(access_token, access_token_secret)
        api = tweepy.API(auth)
        api.update_status(tweet)

트윗을 작성하기 위해 정의한 update_tweet() 함수의 모습이다.

키 값을 넣는 과정은 앞에서 먼저 설명을 했으니 넘어가고, 그 아래의 부분을 알아보도록 하겠다.

auth = tweepy.OAuthHandler(api_key, api_key_secret)
auth.set_access_token(access_token, access_token_secret)

이 부분은 전 포스팅에서 Tweepy를 소개하며 간단히 짚은 부분이다. 자세히 알아보자면 이는 사용할 때마다 토큰에 계속 접근할 필요가 없도록 차후 사용을 위해 접근 토큰을 저장하는 과정이기도 하다.

OAuthHandler의 인스턴스를 생성하는 과정이며, 이 부분에는 위에서 저장한 키 값 중 컨슈머 키와 컨슈머 키 시크릿을 넘겨준다는 사실을 알 수 있다. 

.set_access_token() 에서는 저장된 접근 토큰을 이용해 다시 OAuthHandler를 실행하기 위한 과정을 수행하며, 접근 토큰과 접근 토큰 시크릿을 넘겨주어 내가 만든 트위터 앱에 접근할 수 있도록 한다. 이 부분에서 앱의 접근 토큰이 필요한 것이다.

 

자세한 설명은 Tweepy 공식 레퍼런스의 '인증 지침'을 참고하면 좋다.

 

api = tweepy.API(auth)
api.update_status(tweet)

update_Tweet() 함수에서 위의 부분은 .OAuthHandler에 컨슈머 키와 컨슈머 키 시크릿을 넘겨주어 생성된 인스턴스, 인증 핸들러를 매개변수로 .API 메소드 래퍼를 이용하여 넘겨준 뒤 트윗을 작성해주는 메소드인 .update_status() 에 매개변수로 트윗의 내용을 전달해주며 트윗을 작성하게 된다.

 

update_tweet("예제를 작성해봅시다.")

함수의 매개변수 tweet의 내용을 문자열로 넘겨주어 '예제를 작성해봅시다.' 라는 내용을 트윗하게 된다.

 

3. 실행 결과

만들었던 트위터 앱이 연동되어있는 계정에 트윗이 작성되는 것을 확인 할 수 있다.

트윗 정보의 'StargazerNotiBot' 은 포스팅을 하면서 만든 트위터 앱이 아닌, 원하는 기능 구현이 완료된 트위터 앱의 이름이다. 저 부분에 자신이 만든 트위터 앱의 이름이 들어간다고 보면 된다.

 

 


이번 포스팅에서는 위와 같이 간단히 Python으로 트윗을 할 수 있는 기능을 구현해보았다. 

다음 포스팅부터는 본격적으로 내 블로그에 새 글이 올라왔을 때 트윗을 남기는 기능 구현에 대해서 다뤄봐야겠다.