REST API
발행
한 번의 호출로 여러 채널에 올립니다.
POST
/v1/posts글을 발행합니다. targets 에 넣은 계정 전부로 나갑니다.
본문
| 이름 | 타입 | 설명 |
|---|---|---|
content | string | 본문. 플랫폼별 글자수 제한을 넘기면 발행 전에 막힙니다. |
title | string | YouTube 에 올릴 때 필수. 100자까지. |
media | string[] | presign 으로 받은 publicUrl 배열. |
targets필수 | Target[] | { platform, accountId } 배열. 하나 이상이어야 합니다. |
publishNow | boolean | true 면 즉시 발행합니다. 예약은 아직 지원하지 않습니다. |
플랫폼별 제약
| 이름 | 타입 | 설명 |
|---|---|---|
threads | 500자 | 이미지 20장 또는 영상 1개 · 미디어 없이도 발행 가능 |
instagram | 2,200자 | 이미지 10장 또는 영상 1개 · 미디어 필수 |
youtube | 제목 100자 · 본문 5,000자 | 영상 1개 · 미디어 필수 |
facebook | 63,206자 | 이미지 10장 또는 영상 1개 · 미디어 없이도 발행 가능 |
여러 채널에 동시 발행
curl -X POST https://api.uplika.io/v1/posts \
-H "Authorization: Bearer $UPLIKA_API_KEY" \
-d '{
"content": "새 기능을 공개합니다",
"media": ["https://cdn.uplika.io/med_0a11.png"],
"targets": [
{ "platform": "threads", "accountId": "conn_7f2a91c4" },
{ "platform": "instagram", "accountId": "conn_1b8d34e0" },
{ "platform": "facebook", "accountId": "conn_9a11b2c3" }
],
"publishNow": true
}'GET
/v1/posts/{id}발행 결과를 확인합니다. 실패했다면 사유가 함께 옵니다.
실패 응답
{
"id": "post_8f47cc02",
"status": "failed",
"error": "YouTube 액세스 토큰이 만료되었습니다. 계정을 다시 연결한 뒤 재시도하세요.",
"targets": [{ "platform": "youtube", "accountId": "conn_c05e7a19" }]
}