Bluesky Post
Publora MCP 서버를 사용하여 Bluesky에 게시물을 작성하고 예약합니다. 자동 감지된 해시태그와 URL, 이미지 및 비디오가 포함된 텍스트 게시물을 지원합니다.
전제 조건
요금제: 무료 Starter 플랜에서 사용 가능합니다. 현재 제한 및 가격: publora.com/pricing.
시작하기
- 계정 생성 publora.com/register (무료)
- 앱 비밀번호 생성 Bluesky 설정 > 앱 비밀번호 (메인 비밀번호가 아님)
- Bluesky 연결 Publora 대시보드에서 핸들 + 앱 비밀번호 사용
- API 키 획득 app.publora.com/dashboard/api
- 에이전트 연결 MCP 서버
https://mcp.publora.com에Authorization: Bearer sk_YOUR_API_KEY로 인증하여 연결합니다. Claude Code에서는:
claude mcp add publora --transport http https://mcp.publora.com \
--header "Authorization: Bearer sk_YOUR_API_KEY"
Claude Desktop, Cursor, Codex, OpenClaw 및 claude.ai 커넥터는 각각 다른 설정 파일이나 흐름이 필요합니다: 정확한 경로와 코드 조각은 클라이언트 설정을 참조하세요.
REST API 대체 수단
MCP 서버를 사용할 수 없거나 오류가 발생하는 경우 REST API를 직접 사용하세요.
기본 URL: https://api.publora.com/api/v1
인증: x-publora-key 헤더 사용 (Authorization: Bearer 아님):
# 연결된 플랫폼 가져오기
curl -X GET "https://api.publora.com/api/v1/platform-connections" \
-H "x-publora-key: sk_your_api_key"
# 게시물 작성
curl -X POST "https://api.publora.com/api/v1/create-post" \
-H "x-publora-key: sk_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"platforms": ["bluesky-did:plc:abc123xyz"],
"content": "게시물 내용을 여기에 입력",
"scheduledTime": "2026-03-25T10:00:00Z"
}'
플랫폼 ID 형식: bluesky-{did} 여기서 {did}는 /platform-connections 응답에서 가져옵니다.
예시 ID: bluesky-did:plc:abc123xyz, bluesky-did:plc:def456uvw
📖 전체 API 문서: docs.publora.com
플랫폼 제한
| 기능 | 제한 |
|---|---|
| 문자 수 | 300 |
| 이미지 | 게시물당 최대 4개 |
| 이미지 크기 | 정확히 2,000,000바이트 (10진수, 2MiB 아님) |
| 비디오 길이 | 3분 |
| 비디오 크기 | 50-100 MB (길이에 따라 다름) |
| 일일 비디오 수 | 25개 |
| 대체 텍스트 | Bluesky 자체에서는 2,000자 가능하지만, 이 API를 통해 설정할 수 없음 (아래 참조) |
비디오 크기 등급
| 길이 | 최대 크기 |
|---|---|
| 60초 미만 | 50 MB |
| 60초 - 3분 | 100 MB |
리치 텍스트 패싯
Bluesky는 독특한 리치 텍스트 시스템을 사용합니다. Publora가 복잡성을 자동으로 처리합니다:
- 해시태그:
#해시태그자동 감지 및 클릭 가능하게 변환 - URL: 모든 URL 자동 감지 및 클릭 가능하게 변환
- 바이트 오프셋: 멀티바이트 문자(이모지, CJK)에 대해 올바르게 계산
특별한 서식 지정이 필요 없습니다. 자연스럽게 작성하기만 하면 됩니다.
사용 가능한 도구
create_post
새로운 Bluesky 게시물을 작성합니다.
매개변수:
platforms: Bluesky 연결 ID 배열 (예:["bluesky-did:plc:abc123xyz"])content: 게시물 텍스트 (최대 300자)scheduledTime: ISO 8601 UTC 날짜/시간. 선택사항: 생략하면 게시물이 초안으로 생성됩니다. 미래 시간을 보내면 예약됩니다. 5분 이상 과거 시간은SCHEDULED_TIME_IN_PAST오류로 거부되므로, 즉시 게시하려면 현재 시간 + 1분을 사용하세요.mediaUrls: 최대 10개의 공개 https 이미지 또는 비디오 URL. Publora가 서버 측에서 다운로드하여 유효성 검사 전에 첨부하므로, 미디어와 예약이 한 번의 호출로 처리됩니다. 이는 초안 ->get_upload_url->complete_media흐름의 원샷 대안입니다. 수집은 시간당 60개의 URL로 속도 제한됩니다.
get_upload_url
미디어 업로드를 위한 사전 서명된 URL을 가져옵니다.
매개변수:
postGroupId: 미디어를 첨부할 게시물 IDfileName: 파일 이름 (예: "photo.jpg")contentType:image/jpeg,image/png,video/mp4type:"image"또는"video"
complete_media
get_upload_url을 통해 업로드된 파일을 최종 처리합니다. 사전 서명된 PUT 성공 후에 필요합니다. 선택사항입니다. 예약도 보류 중인 미디어를 최종 처리하지만, 조기에 호출하면 포맷 및 프로브 오류가 게시 전에 표시됩니다. mediaUrls로 첨부된 미디어에는 필요하지 않습니다.
매개변수:
mediaId:get_upload_url이 반환한 ID
list_connections
연결된 계정과 해당 플랫폼 ID를 나열합니다. 먼저 이 도구를 호출하고 ID를 그대로 복사하세요. ID는 절대 추측할 수 없습니다.
post_stats
게시된 Bluesky 게시물의 참여 지표: 반응, 댓글, 리포스트, 인용 및 북마크. 요청 시점에 실시간이며, 약 2시간 동안 캐시됩니다.
매개변수:
platform:blueskyplatformId: Bluesky 연결 IDpostedIds: 조회할 게시된 게시물 ID
profile_stats
연결된 계정의 팔로워, 팔로잉 및 게시물 수입니다.
매개변수:
platform:blueskyplatformId: Bluesky 연결 ID
list_posts / get_post / update_post / delete_post
예약된 게시물과 초안을 관리합니다. update_post는 초안 또는 예약된 게시물의 content와 platforms를 패치하므로, 오타 수정이나 타겟 변경 시 삭제 후 재생성할 필요가 없습니다. delete_media와 prune_media_reference는 업로드된 파일을 정리합니다.
예시
해시태그가 있는 간단한 게시물
이 내용을 Bluesky에 게시:
"새로운 API 문서를 출시했습니다! https://docs.example.com 에서 확인하세요 #devtools #api"
해시태그와 URL이 자동으로 클릭 가능하게 변환됩니다.
이미지가 있는 게시물
대시보드 스크린샷과 함께 이 내용을 Bluesky에 게시:
"새로운 분석 보기가 출시되었습니다! #buildinpublic"
여러 이미지
Before/After 비교 이미지와 함께 Bluesky 게시물 작성:
"사무실 리노베이션이 완료되었습니다! 완전히 변했네요."
참고: 게시물당 최대 4개의 이미지가 허용됩니다.
비디오 게시물
이 60초 데모 비디오를 Bluesky에 게시:
"새로운 모바일 앱 기능의 빠른 둘러보기"
예약된 게시물
내일 오전 10시에 이 내용을 예약:
"좋은 아침입니다! 오늘의 생산성 팁을 알려드립니다..."
중요 제한 사항
-
API를 통해 대체 텍스트를 설정할 수 없습니다. Bluesky 퍼블리셔는 미디어의
alt속성을 읽지만, 사전 서명된 업로드 흐름이나mediaUrls모두 이를 저장하지 않으며,create-post로 전송된altTexts값은 자동으로 무시됩니다.platformSettings도 Bluesky가400 PLATFORM_SETTING_UNKNOWN으로 거부되므로 도움이 되지 않습니다. 이미지를 게시한 후 Bluesky 앱에서 대체 텍스트를 추가하세요. 사용자에게 대체 텍스트가 게시되었다고 말하지 마세요. -
앱 비밀번호 필요: Bluesky 앱 비밀번호를 사용해야 하며, 메인 계정 비밀번호를 사용하지 마세요. 설정 > 앱 비밀번호에서 생성하세요.
-
모든 이미지는 JPEG로 변환됨: 입력 형식(PNG, WebP, GIF)에 관계없이 모든 이미지는 업로드 전에 JPEG로 변환됩니다.
-
엄격한 2,000,000바이트 이미지 제한: AT 프로토콜은 반올림된 2MiB가 아닌 정확한 10진수 바이트 상한을 강제합니다. 80-85% JPEG 품질로 압축하고 바이트 수를 확인하세요.
-
DID 기반 플랫폼 ID: 숫자 ID를 사용하는 다른 플랫폼과 달리 Bluesky는
did:plc:xxx형식을 사용합니다. -
비디오를 위한 이메일 인증: 비디오를 업로드하기 전에 Bluesky에서 이메일을 인증해야 합니다.
-
일일 25개 비디오 제한: 하루 최대 25개 비디오 또는 10GB입니다.
모범 사례
콘텐츠
- 간결한 게시물: 300자는 트위터보다 짧습니다. 강렬하게 작성하세요.
- 자연스러운 해시태그: 1-2개의 관련 해시태그가 효과적입니다.
- 대체 텍스트: 추가할 가치가 있지만, 게시 후 Bluesky 앱에서 직접 해야 합니다. API가 전달할 수 없습니다.
- URL 작동: 링크는 클릭 가능합니다 (일부 플랫폼과 달리).
타이밍
- 성장 중인 플랫폼: X보다 덜 혼잡하여 주목받기 쉽습니다.
- 기술에 정통한 사용자: 개발자와 얼리어답터가 많습니다.
- 빈도: 하루 1-3개의 게시물.
참여
- Bluesky는 진정한 대화를 선호합니다.
- 커뮤니티를 구축하려면 댓글에 답변하세요.
- 네트워크를 확장하려면 관련 사용자를 팔로우하세요.
문제 해결
| 오류 | 원인 | 해결책 |
|---|---|---|
| "잘못된 자격 증명" | 잘못된 비밀번호 유형 | 앱 비밀번호 사용, 메인 비밀번호 사용 금지 |
| "이미지가 너무 큼" | 2,000,000바이트 초과 | 80-85% JPEG 품질로 압축 |
| "내용이 너무 김" | 300자 초과 | 내용 줄이기 (자동 스레딩 없음) |
| "비디오 일일 한도" | 25개 비디오 도달 | 24시간 대기 |
| "이메일 미인증" | 비디오 업로드 시도 | Bluesky 설정에서 이메일 인증 |