Posts

SocFlow API를 사용하면 Instagram, Threads 등 여러 소셜 미디어 플랫폼에 게시물을 자동으로 작성하고 발행할 수 있습니다. 한 번의 API 요청으로 여러 계정에 동시에 게시할 수 있습니다.

게시물은 텍스트, 이미지, 비디오 등 다양한 형식을 지원하며, 예약 발행 기능도 제공합니다.


POST/v1/posts

게시물 생성

여러 소셜 미디어 플랫폼에 게시물을 동시에 발행합니다. 미디어 파일은 사전에 업로드되어 있어야 합니다.

워크플로우

  1. 미디어 업로드: /v1/media 엔드포인트로 이미지/비디오 업로드
  2. 미디어 ID 확인: 업로드 응답에서 media_asset_id 추출
  3. 계정 ID 확인: /v1/accounts/social 엔드포인트로 연동된 계정 조회
  4. 게시물 생성: 이 엔드포인트로 게시물 발행 요청
POST
/v1/posts
curl --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}개 계정에 게시 요청 완료`)
}

Was this page helpful?