Posts
SocFlow API를 사용하면 Instagram, Threads 등 여러 소셜 미디어 플랫폼에 게시물을 자동으로 작성하고 발행할 수 있습니다. 한 번의 API 요청으로 여러 계정에 동시에 게시할 수 있습니다.
게시물은 텍스트, 이미지, 비디오 등 다양한 형식을 지원하며, 예약 발행 기능도 제공합니다.
게시물 발행은 비동기로 처리되며, 큐에 추가된 후 순차적으로 처리됩니다.
POST/v1/posts
게시물 생성
여러 소셜 미디어 플랫폼에 게시물을 동시에 발행합니다. 미디어 파일은 사전에 업로드되어 있어야 합니다.
워크플로우
- 미디어 업로드:
/v1/media엔드포인트로 이미지/비디오 업로드 - 미디어 ID 확인: 업로드 응답에서
media_asset_id추출 - 계정 ID 확인:
/v1/accounts/social엔드포인트로 연동된 계정 조회 - 게시물 생성: 이 엔드포인트로 게시물 발행 요청
POST
/v1/postscurl --location 'https://api.socflow.app/api/v1/posts' \
--header 'X-Secret-Token: {API_KEY}' \
--header 'Content-Type: application/json' \
--data-raw '{
"content": "새로운 게시물입니다!",
"hashtags": ["SocFlow", "API"],
"post_type": "FEED_POST",
"media": {
"media_asset_ids": ["550e8400-e29b-41d4-a716-446655440000"]
},
"accounts": ["acc_instagram_12345"]
}'
요청 필드
게시물 기본 정보
- Name
content- Type
- string
- Description
(선택) 게시물 텍스트 내용. 최대 2,000자.
- Name
hashtags- Type
- string[]
- Description
(선택) 해시태그 배열. 최대 30개.
- Name
post_type- Type
- string
- Description
(선택) 게시물 타입. 기본값:
FEED_POST. 가능한 값:FEED_POST,REELS,STORIES,TEXT_POST
미디어 정보
- Name
media- Type
- object
- Description
필수. 미디어 정보 객체.
- Name
media.media_asset_ids- Type
- string[]
- Description
미디어 자산 ID 배열. 최소 1개, 최대 10개.
계정 정보
- Name
accounts- Type
- string[]
- Description
필수. 게시할 소셜 계정 ID 배열. 최소 1개.
- Name
scheduled_at- Type
- number
- Description
(선택) 예약 발행 시각 (Unix timestamp, milliseconds).
게시 타입
FEED_POST (일반 피드)
가장 일반적인 게시물 타입입니다. 이미지, 비디오, 캐러셀(다중 이미지) 등을 지원합니다.
지원 플랫폼: Instagram, Threads
REELS (릴스)
Instagram의 짧은 세로 동영상 콘텐츠입니다.
지원 플랫폼: Instagram
제한사항:
- 비디오만 가능
- 세로 비율 권장 (9:16)
- 최대 90초
TEXT_POST (텍스트 전용)
Threads의 텍스트 전용 게시물입니다.
지원 플랫폼: Threads
제한사항:
- 최대 500자
- 미디어 없이 텍스트만 가능
사용 예시
전체 워크플로우
async function uploadAndPost() {
// 1. 이미지 업로드
const formData = new FormData()
formData.append('file', imageFile)
const uploadResponse = await fetch('https://api.socflow.app/api/v1/media', {
method: 'POST',
headers: {
'X-Secret-Token': process.env.SOCFLOW_API_KEY,
},
body: formData,
})
const uploadResult = await uploadResponse.json()
const mediaId = uploadResult.data.id
// 2. 게시물 발행
const postResponse = await fetch('https://api.socflow.app/api/v1/posts', {
method: 'POST',
headers: {
'X-Secret-Token': process.env.SOCFLOW_API_KEY,
'Content-Type': 'application/json',
},
body: JSON.stringify({
content: '새로운 게시물입니다!',
hashtags: ['SocFlow'],
post_type: 'FEED_POST',
media: {
media_asset_ids: [mediaId],
},
accounts: ['acc_instagram_12345'],
}),
})
const postResult = await postResponse.json()
console.log('게시물 발행 요청:', postResult.message)
}
여러 계정에 동시 게시
async function postToMultipleAccounts() {
const mediaId = '550e8400-e29b-41d4-a716-446655440000'
const accounts = ['acc_instagram_12345', 'acc_threads_67890']
const response = await fetch('https://api.socflow.app/api/v1/posts', {
method: 'POST',
headers: {
'X-Secret-Token': process.env.SOCFLOW_API_KEY,
'Content-Type': 'application/json',
},
body: JSON.stringify({
content: '두 플랫폼에 동시에 게시합니다!',
post_type: 'FEED_POST',
media: {
media_asset_ids: [mediaId],
},
accounts: accounts,
}),
})
const result = await response.json()
console.log(`${accounts.length}개 계정에 게시 요청 완료`)
}
게시물 발행은 큐 시스템을 통해 처리되므로, 실제 발행까지 몇 분이 소요될 수 있습니다. 발행 상태는 SocFlow 대시보드에서 확인하세요.