n8n-Threads 포스팅 자동화 #1 : Threads API 토큰 1시간 제한 > 2개월 장기 토큰으로 자동 연장 워크플로우 만들기

소개

n8n - Threads 연동을 위해서는 Threads API(이하, Access token) 설정/연동이 필요합니다.

문제는 Threads token은 기본적으로 1시간짜리 단기 액세스 토큰만 발급됩니다.
하지만 자동화 시나리오를 구현하고 찐사용을 하려면 최소 며칠 이상 유지되는 토큰이 필요하죠.

Meta 문서에 따르면 long-lived token(최대 60일 유효)을 발급받을 수 있지만, 그마저도 주기적으로 갱신해줘야 하는 번거로움이 있습니다.

그래서 우선 1h > 2Month 장기 토큰으로 자동 갱신하는 과정을 n8n 워크플로우로 자동화해봤습니다.

시리즈 #2에서는 이렇게 발급받은 토큰으로 Threads에 포스팅하는 Workflow를 소개하고,

시리즈 #3에서는 설정한 기간마다 새 토큰을 발급받고, Supabase에 저장하여 이변이 없는 한, 손댈 필요가 없도록 해 보았습니다.

아래 유튜브 영상을 많이 참조하였습니다.
[참조 Youtube : https://www.youtube.com/watch?v=yP0WLHIVtmc]

진행 방법

✅ Facebook & Threads API 준비하기

  • Meta(FB)의 관리자 UI/UX는 악명이 높기로 유명하죠~! 지면의 제약으로 인해서 위 유튜브 영상을 참조하시어 셋업하시는 것을 추천 드립니다. ^^

  • Meta for Developers에서 앱 생성 : https://developers.facebook.com/

  • Threads API 사용을 위해 비즈니스 계정이 꼭 필요~!!!

    • 개인 계정이시면 진행하면서 자연스럽게 전환 가능

  • 영상과 더불어 참조하는 Meta > Threads API 공식 문서

✅ n8n 워크플로우 구성

  • 아래는 위 영상을 통해서 찾은 1h 시간 제한 Threads Token을 2Month 장기로 전환하는 플로우입니다.

한국 비디오 게임의 스크린 샷

1. When clicking 'Execute workflow (Manual Trigger)

  • 테스트용 수동 실행 트리거입니다.

  • 실제 자동화에서는 Schedule Trigger로 대체 가능합니다.

2. 장기 토큰 셋팅 (Set Node)

  • 환경변수 형태로 토큰 발급에 필요한 값들을 미리 지정해줍니다.

  • 유튜브 영상을 보면서 찾은 1h 사용 가능한 token과 개인 비번(secret)을 넣어 줍니다.

    웹 브라우저 설정의 스크린 샷

3. 장기 토큰 변환 (HTTP Request Node)

  • Threads용 long-lived token을 요청하는 핵심 노드입니다.

    iPad 설정의 스크린 샷
  • 응답 결과로 새로운 장기 토큰이 반환됩니다.

4. Create a row (Supabase Node)

  • Supabase 테이블(Thread Token)에 새로운 토큰을 저장합니다.

  • 함께 저장되는 정보:

    • access_token

    • active: true

    • token_type: New

    • created_at: 현재 시간

이후 다른 워크플로우(n8n-Threads 포스팅 등)에서 이 테이블에서 최신 토큰을 가져다 쓸 수 있습니다.

[장기 Token 보관]

  • Supabase에 보관하기

    • 저는 아래와 같은 컬럼값들을 생성해서 테이블을 만들었습니다.

      다수의 다른 숫자가있는 검은 색 화면

결과와 배운 점

💡 깨달음

  • Meta 플랫폼의 관리자 화면 UI/UX는 역시 그지 같았습니다. (아무리 경험해도 익숙해지지 않는... 직관성이란 해왕성 너머 안드로메다 어디 즈음에 있는 듯한...)

  • Access Token 발급 시 CURL 임포트를 이용하면 훨씬 빠르고 정확하게 구성 가능했습니다.

  • Supabase는 단순 텍스트 저장소로 활용해도 매우 유용했어요.

⚠ 시행착오

  • 액세스 토큰이 1시간짜리일 때 장기 토큰 요청이 실패하는 경우가 있었는데, 이유는 단기 토큰이 만료된 상태로 요청해서였어요.

    • 제가 미숙해서 설정하고, 워크플로우 그리는데 몇 시간이 소요된 관계로 중간중간 계속 단기 토큰의 만기가 도래했던 거죠...ㅠㅠ

  • Bad Request - Session key invalid 오류 메시지를 보고, 토큰 상태부터 점검하는 습관을 들이게 됐습니다.

  • 사실, 그래서 장기 전환 workflow를 먼저 소개해 드리는 이유이기도 합니다.

🚀 다음 계획

  • #2: Supabase에 저장된 토큰을 가져와 실시간 포스팅 워크플로우

  • #3: 장기 토큰 자동 연장 워크플로우

도움 받은 글 (옵션)

1

👉 이 게시글도 읽어보세요