[리원아빠] 파이썬 티스토리 자동 포스팅 프로그램

2022. 8. 31. 14:25Python

반응형

 


파이썬으로 티스토리 자동 포스팅 프로그램 만들기



이번 포스팅에서는 파이썬으로 티스토리 블로그 글을 자동 포스팅하는 방법에 대해 알아보겠다.

 

먼저, 자동 포스팅이라함은 파이썬으로 티스토리 블로그에 올릴 내용을 크롤링을 하고

 

그 내용을 파이썬으로  티스토리 블로그에 포스팅함을 의미한다.

 

내용이 어려워 보이지만 티스토리 자체에서 블로그 자동 포스팅이 가능하도록

 

API를 제공해서 그 절차가 어렵진 않다.

 

 

 

 

가장 먼저 해야할일은 티스토리에서 제공하는 Open API 이용약관에 동의하는 것이다.

 

아래 사이트로 이동하여 동의할 수 있으며 파이썬으로 자동 블로그 포스팅을 위해서는 

 

웹서비스, 읽기, 쓰기 항목에 체크한 후 등록 버튼을 누른다.

 

서비스명은 자신의 원하는 이름으로 설정하면 된다.

 

URL : https://www.tistory.com/guide/api/manage/register

 

TISTORY

나를 표현하는 블로그를 만들어보세요.

www.tistory.com

 

 

 

등록버튼을 누르고 앱 관리 메뉴로 가면  위 사진처럼 서비스가 등록된 화면이 나온다.

 

등록된 서비스가 확인 된다면 설정 버튼을 눌러 세부적인 항목들도 설정해보도록 하자.

 

 

 

설정 메뉴에 들어가면 위 화면처럼 세부 항목들을 설정할 수 있다.

 

이 값들 중 App IDSecret Key는 자동 발급되는 값으로 자신만의 고유한 값이다.

 

파이썬으로 티스토리 자동 블로그 포스팅을 위해서는 위의 App ID와 Secret Key 값을 사용하므 잘 관리하자.

 

서비스 URL 항목과 CallBack 항목에는 자신의 티스토리 블로그 주소를 적어준다.

 

 

이번엔  파이썬으로 티스토리 자동 블로그 포스팅을 위한 Authentication code 값을 발급받아야 한다.

 

티스토리에서 친절하게 발급 받는 방법을 설명해두었으므로 자세한 내용은 아래 URL에서 확인 가능하다.

 

URL : https://tistory.github.io/document-tistory-apis/auth/authorization_code.html

 

Authorization Code 방식 · GitBook

No results matching ""

tistory.github.io

 

 

 

개념이 생소한 사람들은 보고도 이해가 잘 되지 않을 수도 있는데

 

위의 예시처럼 client id 부분엔 위 설정에서 확인된 App ID를 적어주고

 

redirect_uri에는 자신의 블로그 주소를 적어주면 된다.

 

그리고 해당 https 부터 시작해서 someValue까지 모두 복사해서 크롬이나 엣지등에 붙여넣기 하면

 

Authentication code 값이 발급되는 과정이 진행된다.

 

 

여기까지 잘 따라왔다면 작성자처럼 허가하기 화면이 나오고

 

허가하기 버튼을 누르면 주소창에 자신의 code 값이 발급된다.

 

해당 code 값 역시 App ID, Secret Key처럼 파이썬으로 티스토리 블로그 포스팅을 위해 반드시 필요한 값이다.

 

 

지금까지 파이썬으로 티스토리 자동 블로그 포스팅을 위해서 확인한 값은 총 3가지이다.

 

App ID, Secret Key, Authentication Code.

 

파이썬으로 티스토리 자동 블로그 포스팅을 위해서는 추가적으로 access token이 필요한데

 

access token은 위 3가지 값으로 발급 받을 수 있다.

 

위단계에서 했던 것처럼 {} (중괄호)로 감싸져 있는 부분을 자신의 고유값으로 설정하자.

 

 

import requests


client_id = '발급받은 APP ID'
client_secret = '발급받은 Secret Key'
code = '발급받은 Authentication Code'
redirect_uri = '자신의 블로그 주소'
grant_type = 'authorization_code'


url = 'https://www.tistory.com/oauth/access_token?'
data = {
	'client_id': client_id,
	'client_secret': client_secret,
	'redirect_uri': redirect_uri,
	'code': code,
	'grant_type': grant_type
}
r = requests.get(url, data)
print (r.text)

access token 값은 크롬이나 엣지에 붙여넣기를 한다고 바로 확인되지는 않는다.

 

개발자모드를 통해 확인을 해야하는데 번거로우므로 위의 파이썬 소스 코드를 활용하자.

 

파이썬 코드 상단의 변수들에 자신이 부여받은 값들을 기입해주고 파이썬을 실행하면 된다.

 

 

파이썬 소스 코드를 수행하면 위처럼 access_token 값이 출력된다.

 

만약 오류가 발생한다면 위 코드를 2번 이상 수행하여 Authentication code 값이 만료되었을 가능성이 가장 크다.

 

Authentication Code는 가장 최신의 값만 유효하다.

 

그렇다면 Authentication code 값만 다시 갱신받아서 변수에 변경된 code값을 붙여넣고 실행하면 된다.

 

 

이제 하나의 값만 더 확인하면 된다.

 

바로 포스팅할 블로그의 카테고리 값이다.

 

예를 들어 블로그의 생활정보 카테고리에 파이썬을 통해 자동 포스팅을 하고자 한다면

 

생활정보 카테고리의 ID 값을 확인해야 한다.

 

 

import requests

access_token = '토큰 값'
blogName = '블로그 이름 .tistory 앞의 값'
output = 'json'

url = 'https://www.tistory.com/apis/category/list?'
data = {
		'access_token': access_token,
		'output': output,
		'blogName': blogName,
		}
r = requests.get(url, data)
print (r.text)

 

access token을 발급 받는 것처럼 파이썬 소스 코드를 통해 카테고리 ID를 확인할 수 있다.

 

만약 파이썬 소스코드로 확인하는게 번거롭다면 크롬이나 엣지의 개발자 도구 기능을 활용해도 된다.

 

 

자신의 티스토리 블로그에 방문하여 파이썬 자동 등록을 원하는 카테고리 글목록으로 이동한다.

 

그 후 해당 화면에서 F12를 눌러 개발자 도구를 활성화해서 카테고리 ID 값을 확인 할 수 있다.

 

블로그 스킨에 따라 카테고리 ID 값이 위치한 곳이 모두 상이하기 때문에 직접 눌러보면서 찾아봐야 한다.

 

 

파이썬으로 티스토리 블로그 자동 등록을 위한 모든 준비가 끝이 났다.

 

티스토리 Open API에서 제공되는 항목들을 통해 파이썬으로 티스토리 자동 포스팅이 가능하다.

 

설명에 나와있는 것처럼 필수 값들은 반드시 Post 방식으로 전달이 되어야 한다.

 

아래 예제를 통해서 좀 더 쉽게 다가가 보자.

 

 

import requests


client_id = '자신의 App ID'
client_secret = '자신의 Secret Key'
access_token = '발급 받은 access token'
code = '발급 받은 가장 최신의 Authentication Code'
redirect_uri = '자신의 블로그 주소'
blogName = '블로그 이름 (https://XXX.tistory.com 에서 XXX의 값)'
tag = '테스트, test'					#등록할 태그값, 쉼표로 구분
output = 'json'						#고정값
grant_type = 'authorization_code'   #고정값 
visibility = 0  #0은 비공개, 3은 공개 발행
category =  1039213


def getToken():
    url = 'https://www.tistory.com/oauth/access_token?'
    data = {
            'client_id': client_id,
            'client_secret': client_secret,
            'redirect_uri': redirect_uri,
            'code': code,
            'grant_type': grant_type
            }
    r = requests.get(url, data)
    print (r.text)


def getCategory():
    url = 'https://www.tistory.com/apis/category/list?'
    data = {
            'access_token': access_token,
            'output': output,
            'blogName': blogName,
            }
    r = requests.get(url, data)
    print (r.text)


def postWrite(content):
        title = '자동 포스팅 테스트'
        url = 'https://www.tistory.com/apis/post/write?'
        data = {
                 'access_token': access_token,
                 'output': output,
                 'blogName': blogName,
                 'title': title,
                 'content': content,
                 'visibility': visibility,
                 'category': category,
                 'tag': tag,
                 }
        r = requests.post(url, data=data)
        print ('자동 포스팅 성공')
        return r.text


if __name__ == '__main__':
    # getToken()    #최초 토큰 발급시에만 수행
    # getCategory()  #최초 카테고리 확인시에만 수행
	postWrite('테스트 등록 글입니다.')

작성자는 token과 카테고리 ID를 입력받는 부분 역시 파이썬 코드로 만들어

 

최초 1회만 수행하여 발급 받고 그 이후부터는 posting 함수를 통해 자동으로 티스토리에 글이 등록되도록 했다.

 

 

파이썬 코드를 수행하고 나서 블로그에 방문해 자동으로 등록된 글을 살펴보자.

 

제목과 내용, 그리고 태그까지 작성자가 설정한 값으로 잘 입력되었다.

 

공개부분 역시 비공개 발행으로 설정을 했기때문에 비공개로 등록되어 있음을 확인할 수 있다.

 

위의 예제는 아주 간단한 예제로 제목과 내용부분을 한 줄 정도로 간단하게 처리했지만

 

좀 더 응용하면 content 부분에 전달할 값을 파이썬 크롤링을 통해 가져올 수도 있다.

 

더불어 폰트나 스타일도 html 문법으로 적용이 가능하고 이미지나 파일도 같이 첨부하는등 적용방법은 무궁무진하다.

 

그럼 이 참에 자신만의 파이썬 자동 포스팅 봇을 만들어 보는건 어떨까?

 

그럼 끝.

반응형