프롬프트 도감 › No.1974
스레드 댓글 키워드 자동 답글 봇 만들기
Build a Threads keyword auto-reply bot
"댓글에 '키워드' 남기면 링크 드려요" 글에 달린 댓글마다 15분 안에 링크 답글이 자동으로 달려요. 키워드마다 문구·링크를 따로 정하고, 같은 댓글엔 한 번만 답해요.
이럴 때 댓글 키워드 이벤트를 하는데 DM·답글을 하나씩 보내기 벅찰 때
도구 Claude Code · Codex
프롬프트
너는 시니어 자동화 엔지니어다. 내 스레드(Threads) 글에 "댓글에 '키워드' 남기면 링크 드려요"라고 썼을 때, 그 키워드가 들어간 댓글마다 링크 답글을 자동으로 다는 작은 봇을 만들어라. 사람이 DM을 하나씩 보내지 않아도 되게 하는 게 목표다.
【내가 채울 것】
- 내 스레드 계정 이름: [예: @my_account]
- 키워드와 보낼 링크: [예: '스킬' → https://내사이트/skills]
- 돌릴 곳: [내 맥(cron·dagu) / 서버 / Cloudflare Workers]
1) 먼저 할 일 (README 맨 위에 체크리스트로)
- Meta 개발자 앱에 Threads 사용 사례를 추가하고 권한 threads_basic, threads_content_publish, threads_read_replies, threads_manage_replies 를 켠다.
- 앱이 개발(테스트) 모드면 내 계정을 'Threads 테스터'로 추가하고, 스레드 앱 → 설정 → 계정 → 웹사이트 권한 → 초대에서 수락해야 한다. 안 하면 연결할 때 "The user has not accepted the invite to test the app" 오류가 난다.
- 로그인(OAuth)으로 받은 단기 토큰을 장기 토큰(60일)으로 바꿔 저장한다.
2) 규칙 파일 rules.json
[{"keyword": "스킬", "link": "https://...", "text": "요청하신 링크예요 👉 {link}"}]
- 키워드마다 답글 문구와 링크를 따로 정한다. 링크는 내 도메인만 허용한다(엉뚱한 링크가 나가지 않게).
3) 15분마다 도는 순서
- GET /me/threads 로 최근 7일 내 글을 읽는다.
- 글 본문에 따옴표로 감싼 키워드('스킬', "스킬", ‘스킬’)가 있는 글만 고른다. 본문에 키워드가 그냥 섞인 글은 건너뛴다.
- GET /{글id}/replies?limit=100 으로 댓글을 읽고, 띄어쓰기·대소문자를 무시하고 키워드가 들어간 댓글만 고른다.
- 내 댓글, 이미 답한 댓글(답한 댓글 id 를 30일 보관)은 건너뛴다.
- 답글은 POST /{내id}/threads (media_type=TEXT, reply_to_id=댓글id) → 2초 쉬고 → POST /{내id}/threads_publish. 한 번 돌 때 최대 15개.
- 토큰 저장 시각이 7일을 넘으면 GET /refresh_access_token?grant_type=th_refresh_token 으로 갱신해 60일 만료를 막는다.
4) 안전장치
- dry 모드: 실제로 보내지 않고 "몇 개 찾았고 몇 개 보낼지"만 출력한다. 처음엔 꼭 dry 로 지난 글들을 돌려, 켜자마자 옛 댓글에 답글이 쏟아지지 않는지 확인한다.
- 토큰이 만료되면 조용히 실패하지 말고 "재연결 필요"를 로그와 알림으로 남긴다.
- 비밀값은 .env 에서만 읽고 코드·로그에 찍지 않는다.
산출물: 스크립트, rules.json 예시, 15분 예약 설정, README(앱 설정·테스터 초대·토큰·되돌리기), dry 실행 결과.
먼저 내 환경을 3줄로 확인하고 계획을 보여 준 뒤, 내가 승인하면 만들어라. 실제로 돌려 본 것만 '완료'라고 말해라.팁
- 연결할 때 'has not accepted the invite' 오류가 나면 스레드 앱 → 설정 → 계정 → 웹사이트 권한 → 초대에서 수락하면 돼요.
- 장기 토큰도 60일이면 끝나요. 7일마다 갱신하는 단계를 빼지 마세요.
- 켜기 전에 dry 로 지난 글을 돌려 보세요. 옛 댓글에 답글이 한꺼번에 달리는 사고를 막아요.
출처
권리: 프롬프트 문장은 빌더로그 작성.