2교시 · 11:30 — 오늘의 고비

메타 개발자 앱 만들고
토큰 받기

제일 짜증나는 구간입니다. 그래서 함께 합니다. 강사도 두 번 해봤고, 두 번 다 짜증났습니다.

🎁 2교시가 끝나면

먼저 전체 그림. 스레드에 프로그램이 글을 올리려면 메타가 발급한 액세스 토큰이라는 열쇠가 필요합니다. 열쇠를 받는 길은 이렇습니다.

  1. 메타 개발자 등록 (1회만)
  2. 앱 만들기 — "스레드에 접근하는 프로그램"이라는 신고서 같은 것
  3. 앱에 권한 달기 (읽기 + 발행)
  4. 내 스레드 계정을 앱의 테스터로 초대하고 → 폰에서 수락 ← 여기가 숨은 함정
  5. 토큰 발급 → 클로드가 60일 장기인지 확인·교환 ← 클로드가 해줍니다
⚠️ 메타 화면은 문구와 위치가 수시로 바뀝니다. 이 매뉴얼과 화면이 조금 달라도 당황하지 마세요 — 굵은 글씨의 핵심 단어(Threads, use case, 권한 이름 등)를 화면에서 찾으면 됩니다. 못 찾겠으면 스크린샷을 채팅에 올려주세요(📎).

포털에서 하는 일 (사람 담당)

1

메타 개발자 등록

developers.facebook.com에 접속해 우상단에서 페이스북 계정으로 로그인하세요. 처음이면 개발자 등록(Get Started) 절차가 나옵니다 — 이메일/전화 인증하고, 직업을 물으면 아무거나(예: "기타") 골라도 됩니다.

💡 "개발자"라는 말에 쫄 필요 없습니다. 등록엔 자격 심사가 없고, 오늘 우리가 만드는 앱은 내 계정에만 붙는 개인 도구입니다.
2

앱 만들기 — use case에서 Threads 고르기

우상단 내 앱(My Apps) → 앱 만들기(Create App)를 누르세요. 진행 중에 use case(사용 사례)를 고르는 화면이 나오면 "Threads API 액세스(Access the Threads API)"를 선택합니다. 앱 이름은 아무거나(예: 내스레드자동화), 연락용 이메일 확인하고 만들기를 누르면 끝.

⚠️ use case 화면에서 Threads가 안 보이고 "비즈니스" 어쩌고만 보인다면 잘못된 갈래로 들어간 겁니다. 뒤로 가서 use case 목록을 다시 보세요. 비즈니스 인증·사업자등록 같은 건 오늘 전혀 필요 없습니다. 그런 걸 요구하는 화면이 나왔다면 길을 잘못 든 것이니 손 들어주세요.
3

권한 2개 확인하기

앱 대시보드 왼쪽 메뉴에서 use case → Threads API → 설정(Customize)으로 들어가면 권한(permissions) 목록이 있습니다. 다음 두 개가 추가된 상태인지 확인하세요. 없으면 옆의 추가(Add)를 누릅니다.

  • threads_basic — 기본 (계정 읽기)
  • threads_content_publish — 발행 (이게 있어야 글을 올립니다)
💡 댓글까지 자동으로 읽고 싶으면 threads_read_replies도 추가해두세요 (4교시에서 씁니다). 지금 안 해도 나중에 추가할 수 있습니다.
4

내 스레드 계정을 테스터로 초대하기

왼쪽 메뉴 앱 역할(App Roles) → 역할(Roles)로 가서 사람 추가(Add People)를 누르세요. 역할 종류에서 Threads 테스터(Threads Tester)를 고르고, 내 스레드 사용자 이름(@아이디)을 입력해 초대합니다.

⚠️ 여기서 초대만 하고 끝내면 아무 일도 일어나지 않습니다. 다음 단계(폰에서 수락)까지 해야 합니다. 강사가 처음 했을 때 여기서 20분을 헤맸습니다.
5

📱 폰에서 초대 수락하기 — 숨은 함정

폰의 스레드 앱을 열고: 프로필 → 우상단 설정(⚙) → 계정(Account) → 웹사이트 권한(Website permissions) 비슷한 항목으로 들어가면 초대(Invites)가 있습니다. 방금 만든 앱 이름이 보이면 수락(Accept)을 누르세요.

💡 메뉴 이름이 버전마다 조금씩 다릅니다. 설정 안에서 "권한" 또는 "초대"라는 단어를 찾으세요. 폰 대신 컴퓨터 브라우저로 threads.net에 로그인해 설정에서 수락해도 됩니다.
⚠️ 초대가 안 보이면: ① 4번에서 입력한 @아이디에 오타가 없는지 ② 폰에 로그인된 스레드 계정이 초대한 그 계정이 맞는지 확인하세요. 계정 여러 개 쓰시는 분이 자주 여기서 걸립니다.
6

토큰 발급받기

다시 컴퓨터의 개발자 사이트로. use case → Threads API 설정 화면에 액세스 토큰 생성(Generate access token) 버튼이 있습니다. 누르면 스레드 계정을 확인하는 창이 뜨고 → 허용하면 긴 문자열(토큰)이 나옵니다. 복사 버튼으로 복사해두세요.

💡 이 토큰은 보통 이미 60일짜리 장기 토큰입니다. (예전엔 1시간짜리 단기였는데 메타가 바꿨어요.) 장기인지 아닌지는 10번에서 클로드가 알아서 확인하니 신경 안 쓰셔도 됩니다.
⚠️ 이 문자열이 내 계정의 열쇠입니다. 카톡·메일·채팅창에 붙여넣지 마세요. 다음 단계에서 컴퓨터 안의 비밀보관함 파일에만 넣습니다. 수업 채팅에도 절대 올리지 마세요! (스크린샷 올릴 때 토큰이 찍히지 않게 조심)
💡 이 버튼이 안 보이거나 눌러도 계정이 안 나오면, 5번 수락이 안 된 경우가 대부분입니다.
7

앱 시크릿 찾아두기

왼쪽 메뉴 앱 설정(App settings) → 기본 설정(Basic)에 앱 시크릿 코드(App secret)가 있습니다. 보기(Show)를 누르면(비밀번호 확인 후) 문자열이 나옵니다. 이것도 곧 비밀보관함에 넣을 거니 화면을 열어두세요.

비밀 넣기 — 값은 사람이, 나머지는 클로드

여기서부터 1교시에 깐 안전장치가 일부러 끼어듭니다. 클로드가 비밀파일(.env)을 cat·메모장으로 열려고 하면 안전장치가 막아요 — 고장이 아니라 설계입니다. 그래서 오늘의 분업은 이래요:

💡 이 한 줄이 오늘 배우는 가장 중요한 습관이에요: 비밀은 사람이 넣고, 클로드는 쓰기만 한다(화면엔 절대 안 띄우고). 그래서 토큰은 클로드 채팅에도, 수업 채팅에도 붙여넣지 않습니다.
8

비밀 폴더·파일 만들기 (클로드)

클로드 코드 입력창에 아래를 붙여넣으세요. 클로드가 빈 서식만 만듭니다 (값은 다음 스텝에서 사람이 넣어요).

홈 폴더에 .secrets 폴더를 만들고, 그 안에 threads.env 파일을 아래 세 줄짜리 빈 서식으로 만들어줘. 값은 전부 비워두고, 이 파일 내용은 화면에 출력하지 마. THREADS_ACCESS_TOKEN= THREADS_APP_SECRET= THREADS_USER_ID=
💡 폴더 이름 .secrets는 앞으로 다른 토큰(인스타 등)도 여기 모으는 내 비밀 서랍이에요. 점(.)으로 시작해서 평소엔 숨겨져 있습니다.
9

토큰·시크릿 붙여넣기 (사람이 직접) ⭐

이제 그 파일을 직접 열어서 6번 토큰과 7번 시크릿을 붙여넣습니다. 숨김 폴더라 아래 방법으로 여세요 (까만 창 안 씁니다).

🪟 윈도우: 메모장 실행 → 파일 → 열기 → 파일 이름 칸에 아래를 붙여넣고 열기. (파일이 안 보이면 오른쪽 아래 형식을 「모든 파일」로)

%USERPROFILE%\.secrets\threads.env

🍎 맥: 텍스트편집기 실행 → 파일 → 열기 → Cmd+Shift+G → 아래 입력 → 열기.

~/.secrets/threads.env

열리면 = 뒤에 붙여넣으세요 — 6번 토큰을 THREADS_ACCESS_TOKEN= 줄에, 7번 앱 시크릿을 THREADS_APP_SECRET= 줄에. THREADS_USER_ID=는 비워두고 저장. (맥은 저장 전 포맷 → 일반 텍스트 확인)

🚨 이 토큰·시크릿은 오직 이 파일에만. 클로드 채팅창·수업 채팅·카톡 어디에도 붙여넣지 마세요. (스크린샷에도 안 찍히게)
💡 맥이라면 파일을 잠가두면 더 안전해요. 클로드에게: "~/.secrets/threads.env 권한을 600으로 잠가줘". (윈도우는 이미 내 사용자 폴더라 자동 보호됩니다.)
10

토큰 장기화 확인 (클로드)

파일에 넣었으면 클로드에게 아래를 시키세요. 클로드가 이미 60일 장기인지 확인하고, 단기면 교환까지 알아서 합니다.

홈 폴더 .secrets/threads.env를 "set -a; source ~/.secrets/threads.env; set +a" 로 불러와줘. 그다음 THREADS_ACCESS_TOKEN을 입력으로 스레드 API(graph.threads.net)의 th_exchange_token 교환을 시도해줘: 성공하면 받은 장기 토큰을 THREADS_ACCESS_TOKEN=에 덮어쓰고, code 452(토큰 유형 오류)가 나면 이미 60일 장기라는 뜻이니 그대로 둬. 그다음 /me를 조회해 THREADS_USER_ID를 채워줘. cat·grep으로 .env를 열지 말고 source로만 읽고, 토큰·시크릿 값은 절대 출력하지 마. 끝나면 내 스레드 사용자 이름과 남은 유효기간만 알려줘.

클로드가 "@내아이디로 연결됐고, 토큰은 약 60일 유효"라고 답하면 — 오늘의 고비를 넘었습니다. 🎉

💡 452 오류가 떠도 정상이에요 — "이미 장기 토큰이라 교환이 필요 없다"는 뜻이라, 클로드가 그대로 씁니다. 그리고 "source로만 읽어"가 핵심 — 안전장치는 cat·grep으로 .env 여는 건 막지만 source는 통과시켜서, 클로드가 비밀을 화면에 안 꺼내고 쓰기만 합니다.
11

연결 최종 확인 (클로드)

스레드 연결 확인해줘. (.secrets/threads.env의 장기 토큰을 source로 불러와서 /me만 조회하고, 토큰 값은 출력하지 마.)

→ 내 @아이디가 나오면 성공. 채팅창에 "토큰 발급 완료!"라고 자랑해주세요. 전원이 완료되면 점심 먹으러 갑니다. 🍚

막혔을 때

use case 목록에 Threads가 없어요

개발자 등록 직후엔 목록이 덜 보이는 경우가 있습니다. 페이지 새로고침 → 그래도 없으면 로그아웃 후 재로그인. 계속 없으면 앱 만들기 첫 화면에서 "기타(Other)"로 만들고 나중에 use case를 추가하는 길도 있습니다 — 이 경우 손 들어주세요, 함께 봅니다.

"비즈니스 인증이 필요합니다"가 떠요

오늘 과정엔 비즈니스 인증이 필요 없습니다. 이 문구가 보이면 use case를 잘못 골랐거나(예: 인스타그램/마케팅 API 쪽) 광고 관련 갈래로 들어간 겁니다. 앱을 지우고 2번부터 다시 하는 게 빠릅니다 — 앱은 몇 번이고 다시 만들 수 있습니다.

토큰 생성 버튼을 눌렀는데 내 계정이 안 나와요

① 5번(폰에서 초대 수락)을 건너뛴 경우가 90%입니다. ② 브라우저에 로그인된 인스타/스레드 계정이 다른 계정인 경우 — 시크릿 창에서 다시 시도해보세요.

10번에서 "452 / 액세스 토큰 유형이 잘못됐습니다"가 떠요

고장 아니에요 — 정상입니다. "이미 60일 장기 토큰이라 교환이 필요 없다"는 뜻이에요. 클로드가 그 토큰을 그대로 쓰고 넘어갑니다. 매뉴얼대로 클로드에게 맡기면 알아서 처리돼요.

10번에서 토큰 오류가 나요 (Failed to decode / Session key invalid / Invalid OAuth 등)

에러 문구가 무엇이든 대응은 같습니다 — 토큰이 무효·만료됐거나 복사 중 잘린 경우예요. 6번에서 토큰을 새로 발급받아 9번에서 파일에 다시 붙여넣고 10번을 다시 시키면 됩니다. 토큰은 몇 번이고 다시 만들 수 있으니 아까워하지 마세요.

토큰을 실수로 채팅이나 카톡에 붙여넣었어요

괜찮습니다, 열쇠를 바꾸면 됩니다. 개발자 사이트에서 토큰을 새로 발급받으면(6번) 이전 열쇠로도 한동안 접근이 될 수 있으니, 걱정되면 앱 설정에서 앱 시크릿을 재설정하고 새 토큰을 받으세요. 손 들어주시면 같이 합니다.

강사는 왜 두 번 했는데 두 번 다 짜증났나요

한 번은 인스타그램 API, 한 번은 스레드 API였는데 — 메뉴 이름이 달라지고, 초대 수락이 앱 깊숙이 숨어 있고, 문서가 영어이기 때문입니다. 오늘 여러분은 그 시행착오를 건너뛰고 있습니다. 그래도 짜증나면 정상입니다. 채팅에 화풀이하셔도 됩니다.