최근에는 ChatGPT 같은 생성형 AI를 활용해서 콘텐츠를 만드는 분들이 많아졌습니다. 저 역시 ChatGPT를 활용해 다양한 글과 이미지를 생성하고 있는데요, 이번에는 이렇게 생성된 콘텐츠를 인스타그램 Guest API를 통해 자동으로 업로드하는 방법을 정리해보려고 합니다.
🤖 1. ChatGPT로 콘텐츠 생성하기
먼저 ChatGPT를 이용해 업로드할 콘텐츠를 생성합니다. 예를 들어:
- 게시글 캡션 (해시태그 포함)
- 이미지 설명 또는 이미지 생성 프롬프트
- 짧은 스토리 형식의 글
ChatGPT를 활용하면 트렌드에 맞는 문구나 감성적인 글을 빠르게 만들 수 있어서 콘텐츠 제작 시간이 크게 줄어듭니다.
"오늘 하루도 수고했어요 ☁️
작은 성취들이 모여 큰 변화를 만듭니다.
#일상 #힐링 #동기부여"
🔗 2. Instagram Guest API란?
Instagram Guest API는 인증된 사용자뿐 아니라, 특정 조건 하에서 외부 서비스가 콘텐츠를 업로드할 수 있도록 지원하는 인터페이스입니다. 이를 활용하면 별도의 앱 없이도 자동화된 방식으로 게시물을 업로드할 수 있습니다.
⚠️ 참고: 현재 인스타그램 API는 대부분 Business 계정 및 Facebook Graph API 기반으로 운영되며, Guest API 사용은 제한적일 수 있습니다.
🛠️ 3. Instagram Guest API 셋업하기
API를 실제로 사용하려면 Meta Developer 앱 생성부터 액세스 토큰 발급까지 몇 가지 사전 준비가 필요합니다. 순서대로 따라해 보세요.
📋 3-1. 사전 준비 (필수 조건)
아래 세 가지가 모두 갖춰져 있어야 API를 사용할 수 있습니다.
| 항목 | 설명 |
|---|---|
| Instagram Business / Creator 계정 | 일반 개인 계정은 API 사용 불가. Instagram 앱 → 설정 → 계정 → 전문가 계정으로 전환 |
| Facebook 페이지 | Instagram 계정과 연결된 Facebook 페이지 필요. 페이지가 없으면 새 페이지 생성 후 Instagram 설정에서 연결 |
| Meta Developer 앱 | API 호출에 사용할 App ID와 App Secret 발급처. 아래 단계에서 생성 |
🏗️ 3-2. Meta Developer 앱 생성
- developers.facebook.com 접속 후 Facebook 계정으로 로그인
- 우측 상단 "내 앱(My Apps)" → "앱 만들기(Create App)" 클릭
- 앱 유형: "비즈니스(Business)" 선택 후 다음
- 앱 이름, 연락처 이메일 입력 후 앱 생성
- 앱 대시보드 → 왼쪽 메뉴 "제품 추가(Add Products)" → "Instagram Graph API" → "설정(Set Up)" 클릭
💡 앱 모드 확인: 앱 생성 직후에는 개발 모드(Development Mode)로 설정됩니다. 이 상태에서는 앱 관리자/테스터로 등록된 계정만 API를 사용할 수 있습니다. 개인 테스트 용도라면 개발 모드로도 충분합니다.
🔗 3-3. Instagram 계정 연결 및 사용자 ID 확인
- 앱 대시보드 → Instagram Graph API → "Instagram 계정 추가"
- 연결할 Business/Creator 계정 선택 및 권한 허용
- 연결 완료 후 표시되는 Instagram 사용자 ID (
ig_user_id) 를 메모해 두세요. 이후 API 호출에 필수로 사용됩니다.
아래 코드로 연결된 계정의 ID를 확인할 수도 있습니다:
import requests
# Facebook 페이지의 액세스 토큰으로 연결된 Instagram 계정 ID 조회
page_access_token = "YOUR_PAGE_ACCESS_TOKEN"
url = "https://graph.facebook.com/v18.0/me"
params = {
"fields": "instagram_business_account",
"access_token": page_access_token
}
res = requests.get(url, params=params)
ig_user_id = res.json()["instagram_business_account"]["id"]
print(f"Instagram 사용자 ID: {ig_user_id}")
🔑 3-4. 액세스 토큰 발급
Instagram API는 두 종류의 토큰을 사용합니다.
| 토큰 종류 | 유효기간 | 용도 |
|---|---|---|
| 단기 토큰 (Short-lived) | 약 1시간 | 초기 테스트용 |
| 장기 토큰 (Long-lived) | 60일 | 실제 자동화 서비스용 |
① Graph API Explorer로 단기 토큰 발급
- developers.facebook.com/tools/explorer 접속
- 상단에서 내가 만든 앱 선택
- "권한 추가(Add a Permission)" 에서 아래 권한 체크:
instagram_basicinstagram_content_publishpages_read_engagementpages_show_list
- "액세스 토큰 생성(Generate Access Token)" 클릭 → Facebook 로그인 및 권한 허용
- 생성된 토큰을 복사해 보관
② 단기 토큰 → 장기 토큰 교환 (Python)
import requests
app_id = "YOUR_APP_ID" # Meta Developer 앱의 앱 ID
app_secret = "YOUR_APP_SECRET" # 앱 대시보드 → 설정 → 기본에서 확인
short_lived_token = "YOUR_SHORT_LIVED_TOKEN"
url = "https://graph.facebook.com/v18.0/oauth/access_token"
params = {
"grant_type": "fb_exchange_token",
"client_id": app_id,
"client_secret": app_secret,
"fb_exchange_token": short_lived_token
}
response = requests.get(url, params=params)
data = response.json()
long_lived_token = data["access_token"]
expires_in = data.get("expires_in", "알 수 없음")
print(f"장기 토큰: {long_lived_token}")
print(f"유효기간(초): {expires_in}") # 약 5,183,944초 = 60일
# .env 파일에 안전하게 저장
# INSTAGRAM_ACCESS_TOKEN=장기_토큰_값
# INSTAGRAM_USER_ID=사용자_ID_값
⚠️ 토큰 보안 주의: 액세스 토큰은 절대 GitHub 등 공개 저장소에 올리지 마세요..env파일에 저장하고.gitignore에 추가하는 것을 권장합니다.
✅ 3-5. 셋업 확인 테스트
아래 코드를 실행해서 토큰과 계정 ID가 올바른지 확인하세요. 정상 출력이 되면 API 셋업 완료입니다.
import requests
access_token = "YOUR_LONG_LIVED_TOKEN"
ig_user_id = "YOUR_IG_USER_ID"
url = f"https://graph.facebook.com/v18.0/{ig_user_id}"
params = {
"fields": "id,username,account_type,media_count",
"access_token": access_token
}
res = requests.get(url, params=params)
print(res.json())
# 정상 출력 예시:
# {
# "id": "123456789",
# "username": "your_instagram_id",
# "account_type": "BUSINESS",
# "media_count": 42
# }
account_type이 BUSINESS 또는 CREATOR로 출력되면 업로드 API를 사용할 준비가 된 것입니다. 🎉
⚙️ 4. 업로드 흐름 이해하기
전체적인 흐름은 다음과 같습니다:
- ChatGPT로 콘텐츠 생성
- 이미지 준비 (또는 AI 이미지 생성)
- API 인증 토큰 확보
- API를 통해 게시물 업로드 요청
🧩 5. 간단한 업로드 예시 (개념 코드)
아래는 개념적인 흐름을 보여주는 예시입니다:
import requests
access_token = "YOUR_ACCESS_TOKEN"
image_url = "https://example.com/image.jpg"
caption = "ChatGPT로 만든 콘텐츠 🚀 #AI #자동화"
# 1. 컨테이너 생성
url = f"https://graph.facebook.com/v18.0/{ig_user_id}/media"
params = {
"image_url": image_url,
"caption": caption,
"access_token": access_token
}
res = requests.post(url, data=params)
creation_id = res.json()["id"]
# 2. 게시물 업로드
publish_url = f"https://graph.facebook.com/v18.0/{ig_user_id}/media_publish"
publish_params = {
"creation_id": creation_id,
"access_token": access_token
}
requests.post(publish_url, data=publish_params)
🚀 6. 자동화의 장점
- 콘텐츠 제작 시간 단축
- 일정한 업로드 유지 가능
- 마케팅 자동화 가능
- 다양한 테스트 (A/B 테스트 등) 가능
⚠️ 7. 주의사항
- 인스타그램 API 정책 준수 필수
- 스팸성 콘텐츠는 계정 제한 가능
- API 권한 및 토큰 만료 관리 필요
- 개인 계정은 사용 제한이 있을 수 있음
✨ 마무리
ChatGPT와 Instagram API를 함께 활용하면 콘텐츠 제작부터 업로드까지 완전 자동화된 시스템을 구축할 수 있습니다. 특히 개인 브랜딩이나 마케팅을 운영하시는 분들에게는 매우 강력한 도구가 될 수 있습니다.
앞으로는 AI 기반 콘텐츠 자동화가 더욱 중요해질 것으로 보이니, 지금부터 하나씩 적용해보는 것도 좋은 선택입니다 🙂
