채널
네이버 블로그
클로드 같은 AI 에이전트로 네이버 블로그 자동 포스팅을 하는 방법. 네이버 블로그에는 공식 글쓰기 API 가 없어서 크롬 확장으로 연결하고, 첫 발행 · 본문 문법 · 수정 · 삭제 · 댓글까지 API 와 MCP 로 합니다.
요약
| 이름 | 타입 | 설명 |
|---|---|---|
characters | text | 30,000 |
images | media | up to 40 per post; more than that and the first 40 go out with a warning |
carousel | media | no carousel; images sit in the post one after another |
video | media | 10 per post |
text alone | media | allowed |
posts / 24h | limit | 20 |
deletes / 24h | limit | Naver Blog through the browser extension, with no documented daily cap |
status | state | bridge |
본문은 마크다운입니다. 제목과 카테고리는 options.naver_blog 에 따로 넣고, 카테고리는 기본값이 없습니다. 태그는 options.naver_blog.tags 에 넣습니다. 본문 맨 끝의 #해시태그 줄은 발행할 때 태그로 옮겨 나갑니다 (임시저장은 그대로).
발행은 어떻게 되나요?
publish 를 부르면 확장이 브라우저에서 네이버 에디터를 열어 글을 쓰고 발행합니다. 확장이 깔린 크롬이 꺼져 있으면 켜질 때까지 기다렸다가 나갑니다(최대 7일). 에이전트는 발행 전에 bridge_status 로 확장이 켜져 있는지 확인합니다.
첫 글 올리기
제목 · 카테고리 · 마크다운 본문으로 publish(POST /v1/posts)를 부릅니다. 카테고리는 list_accounts 의 naverBlog.categories 에 있는 id 나 이름을 넣습니다. layout: "as-is" 는 쓴 마크다운을 그대로 내보내고, 대신 form 에 폼 id 를 주면 그 폼의 모양으로 다시 배치합니다. 둘 다 없으면 400 naver_form_required 가 고를 수 있는 폼 목록과 함께 옵니다.
curl -X POST https://api.uplika.com/v1/posts \
-H "Authorization: Bearer $UPLIKA_KEY" \
-H "Content-Type: application/json" \
-d '{
"content": "## 소제목\n\n본문 **굵게** [uplika](https://uplika.com)\n\n> 인용 {.bubble}\n\n",
"accountIds": ["conn_..."],
"mediaIds": ["med_..."],
"options": {
"naver_blog": {
"title": "첫 글",
"category": "일상",
"tags": ["uplika"],
"openType": "public",
"layout": "as-is"
}
}
}'본문 문법
표준 마크다운에 네이버 전용 두 가지가 더해집니다. 줄 끝에 붙이는 {.속성}(정렬 · 글자 크기 · 색 · 인용구 모양)과 한 줄을 차지하는 @지시문(영상 · 사진 묶음 · 링크 카드 · 지도 등)입니다. 전체 목록은 아래 API 가 돌려줍니다. topic 을 주면 그 주제만 자세히 받고, 주제 이름은 응답의 topics 에 있습니다. MCP 에서는 describe_grammar 도구가 같은 내용을 줍니다. 모르는 문법은 발행 전에 줄 번호와 함께 naver_markdown_unknown 으로 거절되므로 반쯤 그려진 글이 나가지 않습니다.
curl https://api.uplika.com/v1/naver/grammar \ -H "Authorization: Bearer $UPLIKA_KEY" curl "https://api.uplika.com/v1/naver/grammar?topic=inline" \ -H "Authorization: Bearer $UPLIKA_KEY"
글 수정 · 삭제
update_post 는 발행된 글을 같은 주소 그대로 고칩니다. 새 본문 전체를 주세요. 본문의 media: 참조가 곧 이 글의 사진 · 영상입니다. 새 본문이 안 가리킨 것은 빠지고, mediaIds 는 본문에 놓지 않고 글 끝에 붙일 것만 보냅니다. 네이버가 받는 수보다 많이 가리키면 422 naver_media_over_limit 이고 아무것도 안 바뀝니다. 카테고리 · 공개 범위 · 태그는 새로 주지 않으면 그대로입니다. 네이버 에디터에서 직접 쓴 글은 확장 0.7.8 부터 고칠 수 있고, 첫 호출이 409 naver_source_required 로 지금 본문(source)과 sourceVersion 을 돌려줍니다. 그 본문을 고쳐 content 와 sourceVersion 을 같이 보내세요. 본문의 @keep(...) 줄은 있는 그대로 지키는 블록(사진 · 표 · 카드 등)이라, 두면 제자리에 남고 지우면 빠집니다. @keep 블록 안은 고칠 수 없으니, 있는 표의 칸을 바꾸려면 그 줄을 지우고 같은 자리에 GFM 표를 새로 쓰세요. 새 표를 비롯한 새 블록은 평소 본문 문법으로 어디에나 쓸 수 있습니다. delete_post 는 발행 id 나 글 링크를 받습니다.
댓글 · 공감 · 이웃추가
reply 는 댓글을 달고, list_replies 가 준 id 를 replyTo 로 주면 대댓글이 됩니다. like 는 글이나 댓글에 공감을 누르고, follow 는 이웃을 추가합니다(mutual: true 면 서로이웃 신청). 남의 글에는 글 링크를 넘기면 됩니다. 전부 확장이 브라우저에서 한 번에 하나씩 합니다.
안 되는 것은 무엇인가요?
파일 첨부, 구매 이력에 묶인 상품 카드, 템플릿, 클립, 다른 SNS 의 사진은 본문으로 표현할 수 없어 지원하지 않습니다.
자주 묻는 것
uplika 가 네이버 비밀번호나 쿠키를 저장하나요?
아니요. 확장에는 비밀번호를 넣는 칸이 없고, 네이버 로그인 정보는 그 브라우저 안에만 있으며 uplika 서버로 오지 않습니다. 계정을 지우거나 확장을 삭제하면 같이 지워집니다.
글이 왜 계속 발행 중인가요?
확장이 깔린 크롬이 꺼져 있거나 네이버 로그인이 풀렸을 때입니다. 크롬을 켜고, 로그인 창이 떠 있으면 로그인하세요. 같은 작업이 이어집니다. 10분 안에 아무도 그 창에서 로그인하지 않으면 그 블로그 글은 실패하지 않고 기다립니다. 연결 화면의 [로그인 창 열기] 를 누르고 열린 창에서 로그인하면 이어서 나갑니다. 글은 최대 7일 기다립니다.
본문에 굵은 글씨나 표를 쓸 수 있나요?
예. 본문은 마크다운이라 굵게 · 링크 · 목록 · 표 · 인용이 네이버 자체 서식으로 나갑니다. 스티커 · 지도처럼 네이버에만 있는 것은 @지시문으로 씁니다. 전체 문법은 GET /v1/naver/grammar 가 돌려줍니다.