본문 바로가기
컴퓨터공학

[2025 최신] Tistory 블로그 자동화 시스템 구축 - 4

by oioiwoon 2025. 2. 21.
반응형

다음 단계: Tistory 블로그 자동 업로드 구현

이제 자동 생성된 블로그 글을 Tistory 블로그에 자동으로 업로드하는 기능을 추가할 차례야! 🚀

 

반응형

📌 1. Tistory API 설정 (블로그 업로드 준비)

Tistory API를 사용하려면 OAuth 인증을 통해 access_token을 발급해야 해.

🔹 1-1. Tistory API 설정 페이지에서 애플리케이션 등록

  1. Tistory Open API 관리 페이지로 이동
  2. 새 애플리케이션 등록
  3. 등록 완료 후 Client ID와 Client Secret을 복사해 둠

🔹 1-2. OAuth 인증을 통한 access_token 발급

Tistory API를 사용하려면 OAuth 인증을 통해 액세스 토큰(access_token)을 발급받아야 해.

📌 웹 브라우저에서 아래 URL을 실행하여 OAuth 인증 요청

https://www.tistory.com/oauth/authorize?client_id=YOUR_CLIENT_ID&redirect_uri=https://yourblog.tistory.com/callback&response_type=code
  1. 위 URL을 브라우저에서 실행하면 인증 페이지가 나옴
  2. 승인하면 code 값이 포함된 URL로 리디렉션됨 (예: https://yourblog.tistory.com/callback?code=XXXXX)
  3. 해당 code 값을 복사하여 아래 API 요청으로 access_token 발급

📌 Python에서 access_token 발급 요청

import requests

CLIENT_ID = "YOUR_CLIENT_ID"
CLIENT_SECRET = "YOUR_CLIENT_SECRET"
REDIRECT_URI = "https://yourblog.tistory.com/callback"
CODE = "YOUR_AUTH_CODE"

token_url = "https://www.tistory.com/oauth/access_token"
params = {
    "client_id": CLIENT_ID,
    "client_secret": CLIENT_SECRET,
    "redirect_uri": REDIRECT_URI,
    "code": CODE,
    "grant_type": "authorization_code"
}

response = requests.get(token_url, params=params)
access_token = response.text.split("=")[1]  # access_token 값 추출
print(f"🔑 발급된 Access Token: {access_token}")

🚀 위 코드를 실행하면 access_token이 발급됨!
이 access_token 값을 저장해 두고, 블로그 업로드할 때 사용하면 돼.


📌 2. Tistory 블로그 자동 업로드 코드

📌 자동 업로드 코드 (tistory_uploader.py)

import requests

# ✅ Tistory API 인증 정보 설정
ACCESS_TOKEN = "YOUR_TISTORY_ACCESS_TOKEN"  # 발급받은 access_token 입력
BLOG_NAME = "yourblogname"  # Tistory 블로그 이름 (예: 'yourblog')

# ✅ Tistory 블로그 글 자동 업로드 함수
def upload_to_tistory(title, content):
    url = "https://www.tistory.com/apis/post/write"
    params = {
        "access_token": ACCESS_TOKEN,
        "output": "json",
        "blogName": BLOG_NAME,
        "title": title,
        "content": content,
        "visibility": 3,  # 0: 비공개, 1: 보호, 3: 발행
        "category": 0  # 원하는 카테고리 ID 입력 (카테고리 없으면 0)
    }
    
    response = requests.post(url, data=params)
    
    if response.status_code == 200:
        print(f"✅ Tistory 블로그 업로드 완료: {title}")
    else:
        print(f"❌ 업로드 실패: {response.text}")

# ✅ 자동 생성된 블로그 글 업로드 테스트
if __name__ == "__main__":
    title = "테스트 포스트"
    content = "

이것은 Tistory API를 사용한 자동 업로드 테스트입니다.

"
    upload_to_tistory(title, content)

🚀 위 코드를 실행하면 Tistory 블로그에 자동으로 글이 업로드됨!


📌 3. Google Trends + ChatGPT + Tistory 자동화 연동

이제 Google Trends → ChatGPT 자동 생성 → Tistory 자동 업로드 과정을 한 번에 실행하도록 수정하자.

📌 완성된 자동화 코드 (auto_blog_system.py)

import g4f
import requests
from pytrends.request import TrendReq

# ✅ Tistory API 인증 정보 설정
ACCESS_TOKEN = "YOUR_TISTORY_ACCESS_TOKEN"  # 발급받은 access_token 입력
BLOG_NAME = "yourblogname"  # Tistory 블로그 이름

# ✅ Google Trends에서 인기 검색어 가져오기
def get_google_trends():
    pytrends = TrendReq(hl="ko", tz=540)
    trending_searches = pytrends.trending_searches(pn="south_korea")
    top_keywords = trending_searches[0].tolist()
    return top_keywords[:10]  # 상위 10개 키워드 반환

# ✅ 무료 GPT API를 사용하여 블로그 글 생성
def generate_blog_post(keyword):
    prompt = f"""
    '{keyword}'에 대한 블로그 글을 작성해 주세요.
    
    - **제목을 포함한 블로그 글을 작성해주세요.**
    - **소제목 5개 이상**을 포함하고, 각 소제목에 대해 **2~3개의 단락으로 설명**해주세요.
    - 해당 주제와 관련된 **실제 사례 또는 예시**를 추가해 주세요.
    - 독자의 흥미를 끌 수 있도록 **스토리텔링 기법을 활용**해주세요.
    - SEO(검색엔진 최적화)를 고려하여 **키워드를 3~5회 반복**해주세요.
    - 내용이 풍부하도록 **최소 1500자 이상의 글**을 작성해 주세요.
    """

    response = g4f.ChatCompletion.create(
        model="gpt-4",
        messages=[{"role": "system", "content": "당신은 블로그 콘텐츠를 전문적으로 작성하는 AI입니다."},
                  {"role": "user", "content": prompt}],
        max_tokens=2000
    )

    return response

# ✅ Tistory 블로그 글 자동 업로드
def upload_to_tistory(title, content):
    url = "https://www.tistory.com/apis/post/write"
    params = {
        "access_token": ACCESS_TOKEN,
        "output": "json",
        "blogName": BLOG_NAME,
        "title": title,
        "content": content,
        "visibility": 3
    }
    
    response = requests.post(url, data=params)
    
    if response.status_code == 200:
        print(f"✅ Tistory 블로그 업로드 완료: {title}")
    else:
        print(f"❌ 업로드 실패: {response.text}")

# ✅ 실행 자동화 시스템
if __name__ == "__main__":
    trends = get_google_trends()
    if trends:
        print("📌 Google Trends 검색 트렌드:")
        for i, keyword in enumerate(trends[:2], 1):  # 상위 2개 키워드 사용
            print(f"{i}. {keyword}")

            # 블로그 글 생성
            print(f"\n📝 {keyword}에 대한 블로그 글 생성 중...")
            blog_post = generate_blog_post(keyword)

            # 블로그 자동 업로드
            upload_to_tistory(f"{keyword}에 대한 블로그 글", blog_post)
    else:
        print("❌ 데이터를 가져오지 못했습니다.")

🎯 결론

Google Trends → ChatGPT 자동 생성 → Tistory 블로그 자동 업로드 완성!
매일 자동으로 인기 키워드를 분석하고, 블로그 글을 작성 후 업로드 가능!
완벽한 자동 블로그 시스템을 구축 완료! 🚀

🚀 이제 위 코드를 실행해서 자동으로 블로그 글이 업로드되는지 확인해 봐! 😊

 

 

🎯 현재 방법 모색 중

현재 Tistory Open API가 2024년 이후로 서비스 종료

Selenium을 이용한 로그인 방법 모색, 불가능 (로그인 후 쿠키로 접근, Chrome 계정으로 접근)

관련 방법 찾은 후 재업로드 예정

 

 

 

 

반응형