instagram-api
Meta Graph API를 사용해 Instagram과 Threads에 직접 포스팅하는 스킬. 미디어 호스팅은 Imgur API를 사용 (이미지/영상 공개 URL 생성).
Imgur Client ID 발급
Instagram Graph API는 공개 URL로만 미디어를 업로드할 수 있어 Imgur가 필요합니다.
- https://api.imgur.com/oauth2/addclient 접속
- Application name: 원하는 이름 (예:
raon-instagram) - Authorization type:
Anonymous usage without user authorization선택 - Authorization callback URL:
https://localhost(Anonymous이므로 형식만 맞추면 됨) - 이메일 입력 후 제출 → Client ID 확인
- 환경변수 설정:
export IMGUR_CLIENT_ID="your_client_id_here"
환경변수 설정
# ~/.openclaw/.env 또는 ~/.zshrc에 추가
export INSTAGRAM_ACCESS_TOKEN="your_token_here"
export INSTAGRAM_BUSINESS_ACCOUNT_ID="your_account_id_here"
# Threads (선택)
export THREADS_ACCESS_TOKEN="your_threads_token_here"
export THREADS_USER_ID="your_threads_user_id_here"
# Imgur (이미지 호스팅용 — 피드/릴스 업로드 시 필요)
export IMGUR_CLIENT_ID="your_imgur_client_id_here"
Meta Graph API 토큰 발급
- Meta for Developers 접속
- 앱 생성 → Business 유형 선택
- Instagram Graph API 제품 추가
- 권한 요청:
instagram_basicinstagram_content_publishpages_read_engagement
- Access Token 발급:
- Graph API Explorer: https://developers.facebook.com/tools/explorer/
- 장기 토큰(Long-lived token)으로 교환: 60일 유효
- Business Account ID 확인:
curl "https://graph.facebook.com/v21.0/me/accounts?access_token=YOUR_TOKEN"
💡 Imgur Client ID: https://api.imgur.com/oauth2/addclient (Anonymous usage 선택)
스크립트 사용법
피드 포스팅
bash scripts/post-feed.sh <이미지경로> <캡션파일>
# 예시
bash scripts/post-feed.sh ./photo.jpg ./caption.txt
스토리 포스팅
bash scripts/post-story.sh <이미지경로>
# 예시
bash scripts/post-story.sh ./story.jpg
릴스 포스팅
bash scripts/post-reels.sh <영상경로> <캡션파일>
# 예시
bash scripts/post-reels.sh ./reel.mp4 ./caption.txt
캐러셀 포스팅
bash scripts/post-carousel.sh <캡션파일> <이미지1> <이미지2> [이미지3...]
# 예시
bash scripts/post-carousel.sh ./caption.txt ./img1.jpg ./img2.jpg ./img3.jpg
Threads 포스팅
bash scripts/post-threads.sh <캡션파일> [이미지URL]
# 예시 (텍스트만)
bash scripts/post-threads.sh ./caption.txt
# 예시 (이미지 포함)
bash scripts/post-threads.sh ./caption.txt "https://example.com/image.jpg"
파일 구조
instagram-api/
├── SKILL.md # 이 파일
└── scripts/
├── post-feed.sh # 피드 포스팅
├── post-story.sh # 스토리 포스팅
├── post-reels.sh # 릴스 포스팅
├── post-carousel.sh # 캐러셀 포스팅
└── post-threads.sh # Threads 포스팅
주의사항
- Instagram은 공개 URL로만 미디어 업로드 가능 (로컬 파일 직접 업로드 불가)
- 이 스킬은 Imgur를 통해 임시 공개 URL 생성
- 릴스 동영상 처리에는 수분 소요될 수 있음
- API 호출 실패 시
~/logs/sns/로그 확인