스레드(Threads) AI 자동 포스팅 봇 만드는 법 — 내 계정 하나로, 앱 심사 없이

이온디 2026.09.24 35 0

스레드 AI 자동 포스팅 봇 만드는 법

인스타그램이나 스레드에서 "홈페이지 제작은 OO" 같은 문구가 날마다 조금씩 바뀌어 올라오는 계정을 본 적이 있을 겁니다. 이런 계정 상당수는 AI로 글을 만들고 예약 발행 도구로 올립니다. 이 글은 내 스레드 계정 하나를 로컬 봇으로 자동 운영하는 방법을 처음부터 순서대로 정리한 것입니다. 앱 심사 없이 본인 계정만으로 바로 시작할 수 있습니다.

전체 구조

자동화는 두 부분으로 나뉩니다.

  • 글 만들기 (AI) — Claude나 ChatGPT API에 주제·말투·길이를 정해 주고 초안을 여러 개 받습니다.
  • 올리기 (Threads API) — Meta가 공개한 Threads API로 글을 게시합니다. 예약은 cron 같은 스케줄러가 맡습니다.

코드 없이 하려면 Make, Zapier, n8n, Buffer 같은 도구가 이 두 단계를 이미 연결해 두었습니다. 아래는 직접 만드는 방법입니다.

1단계. Meta 개발자 앱 만들기

  1. developers.facebook.com에 페이스북 계정으로 로그인해 개발자로 등록합니다.
  2. 내 앱 > 앱 만들기를 누르고, 사용 사례(Use case) 선택 화면에서 Threads API 액세스(Threads use case)를 고릅니다.
  3. 앱을 만들면 앱 ID와 시크릿이 두 쌍 생깁니다. 일반 앱용 한 쌍과 Threads 전용 한 쌍인데, 이 글에서 쓰는 것은 Threads 전용 값입니다. 사용 사례 > Threads > 설정 화면에서 확인할 수 있습니다. 여기서 헷갈려 인증이 계속 실패하는 경우가 많습니다.
  4. 같은 설정 화면에서 유효한 OAuth 리디렉션 URI를 등록합니다. 나중에 인증 요청에 넣는 주소와 글자 하나까지 똑같아야 합니다. 로컬 봇이라면 내 사이트 아무 페이지나 적어 두고, 로그인 후 주소창에 붙어 오는 code 값만 복사해 쓰면 됩니다.
  5. 권한(사용 사례 > 맞춤 설정)에서 threads_basic(기본, 모든 호출에 필요)과 threads_content_publish(게시)를 켭니다. 댓글 관리나 통계가 필요하면 threads_manage_replies, threads_manage_insights를 추가합니다.

2단계. 내 계정을 테스터로 등록하기

앱 심사를 받지 않은 개발 모드에서도 테스터로 등록된 계정은 API를 쓸 수 있습니다. 나 혼자 쓰는 봇이면 이걸로 충분합니다.

  1. 앱 대시보드 > 앱 역할 > 역할 탭에서 사람 추가를 누르고, 역할을 Threads 테스터로 골라 내 스레드 사용자 이름을 넣습니다.
  2. 스레드 앱(또는 웹)에서 계정 설정 > 웹사이트 권한으로 들어가 초대를 수락합니다. 수락하지 않으면 인증 화면에서 오류가 납니다.

주의. 다른 사람 계정까지 대신 운영하는 서비스를 만들 거라면 정식 앱 심사가 필요합니다. 개인 봇은 해당되지 않습니다.

3단계. 액세스 토큰 받기

브라우저로 아래 주소를 열어 로그인하고 허용하면, 리디렉션 주소 뒤에 ?code=...가 붙어 돌아옵니다.

https://threads.com/oauth/authorize
  ?client_id=앱ID
  &redirect_uri=등록한_리디렉션_URI
  &scope=threads_basic,threads_content_publish
  &response_type=code

code는 1시간 동안만 유효합니다. 이 code를 토큰으로 바꾸고, 1시간짜리 단기 토큰을 60일짜리 장기 토큰으로 교환합니다.

# code -> 단기 토큰 (응답에 user_id 도 함께 옵니다)
curl -X POST https://graph.threads.com/oauth/access_token \
  -F client_id="$THREADS_APP_ID" \
  -F client_secret="$THREADS_APP_SECRET" \
  -F grant_type=authorization_code \
  -F redirect_uri="$REDIRECT_URI" \
  -F code="$CODE"

# 단기 토큰 -> 장기 토큰 (60일)
curl "https://graph.threads.com/access_token?grant_type=th_exchange_token&client_secret=$THREADS_APP_SECRET&access_token=$SHORT_TOKEN"

받은 장기 토큰과 user_id는 코드에 적지 말고 .env 파일에 넣어 둡니다. 코드를 깃허브에 올리거나 남에게 보여 주다가 토큰이 새는 경우가 가장 흔합니다.

4단계. 글 올리는 코드

게시는 두 번의 호출로 이루어집니다. 먼저 컨테이너(올릴 글 묶음)를 만들고, 그 ID로 발행합니다.

import os, time, httpx

API = "https://graph.threads.com/v1.0"
USER_ID = os.environ["THREADS_USER_ID"]
TOKEN = os.environ["THREADS_TOKEN"]

def post_thread(text: str, image_url: str | None = None) -> str:
    params = {"access_token": TOKEN, "text": text}
    if image_url:
        params |= {"media_type": "IMAGE", "image_url": image_url}
    else:
        params["media_type"] = "TEXT"

    # 1) 컨테이너 생성
    r = httpx.post(f"{API}/{USER_ID}/threads", params=params)
    r.raise_for_status()
    creation_id = r.json()["id"]

    # 이미지가 있으면 서버 처리 시간을 기다린다 (공식 권장 약 30초)
    if image_url:
        time.sleep(30)

    # 2) 발행
    r = httpx.post(f"{API}/{USER_ID}/threads_publish",
                   params={"creation_id": creation_id, "access_token": TOKEN})
    r.raise_for_status()
    return r.json()["id"]  # 게시물 ID

이미지는 파일 업로드가 아니라 공개 URL로 넘깁니다. 내 서버나 스토리지에 올려 둔 이미지 주소를 쓰면 됩니다.

5단계. AI로 글 만들기

AI에게는 "무엇을 쓰라"보다 "어떤 사람이 어떤 말투로 쓰는지"를 구체적으로 주는 편이 결과가 좋습니다.

너는 10년차 웹 에이전시 대표다. 스레드에 올릴 글을 쓴다.
- 주제: {오늘의 주제}
- 500자 이내, 반말 섞인 편한 말투, 해시태그 1개 이하
- 첫 줄에 실무에서 겪은 구체적인 장면을 넣을 것
- 광고 문구처럼 같은 문장을 반복하지 말 것
서로 다른 관점으로 3개를 써 줘.

주제는 미리 목록(스프레드시트나 텍스트 파일)으로 쌓아 두고 하나씩 꺼내 쓰면, 매일 비슷한 글이 반복되는 걸 막을 수 있습니다.

6단계. 예약 실행과 토큰 갱신

로컬 봇이면 cron 한 줄이면 됩니다. 예를 들어 매일 오전 9시에 실행하려면:

0 9 * * * cd ~/threads-bot && ./venv/bin/python bot.py >> bot.log 2>&1

장기 토큰은 60일이 지나면 만료됩니다. 발급 후 24시간이 지났고 아직 만료되지 않은 토큰은 아래 호출로 다시 60일 연장할 수 있으니, 봇이 일주일에 한 번쯤 갱신하게 해 두면 잊어버릴 일이 없습니다.

curl "https://graph.threads.com/refresh_access_token?grant_type=th_refresh_token&access_token=$THREADS_TOKEN"

알아 둘 제한과 주의점

항목 내용
글자 수게시물당 500자
게시 횟수계정당 24시간에 250개
토큰 수명장기 토큰 60일, 주기적으로 갱신
이미지공개 URL로 전달, 발행 전 처리 대기

한도가 넉넉해 보여도 하루 1~3개가 적당합니다. 같은 문장을 키워드만 바꿔 반복하면 도달이 떨어지고 스팸으로 판정될 수 있습니다. 처음에는 AI가 만든 초안을 사람이 한 번 보고 승인한 것만 올라가게 해 두는 것을 권합니다. 완전 무인은 글 품질이 안정된 뒤에 켜도 늦지 않습니다.

정리

  1. Meta 개발자 앱 생성, 권한 두 개 선택
  2. 내 계정을 테스터로 등록하고 수락
  3. code, 단기 토큰, 장기 토큰 순으로 발급해 .env에 저장
  4. 컨테이너 생성 후 발행, 두 번 호출로 게시
  5. AI에게 인물·말투·제약을 주고 초안 생성
  6. cron으로 예약, 토큰은 주기적으로 갱신

여기까지면 나만 쓰는 스레드 봇이 돌아갑니다. 막히는 단계가 있으면 댓글로 남겨 주세요.

댓글 0

목록 보기
댓글을 작성하려면 로그인하세요.
  • 첫 댓글을 남겨보세요.