Community寫作與編輯github.com

publora/bluesky-post

當使用者想要透過 Publora 在 Bluesky 上發文或排程時使用。處理 300 字元上限、自動偵測的標籤與連結、最多 4 張圖片以及影片。API 無法設定替代文字。需要 Bluesky 應用程式密碼,絕不能使用主密碼。不適用於 Mastodon(請改用 social-post)。

bluesky-post 是什麼?

這個技能讓 AI 代理能夠透過 Publora MCP 伺服器在 Bluesky 上建立與排程貼文。它支援文字貼文、自動偵測標籤與 URL、最多 4 張圖片(單張 2,000,000 位元組限制)以及影片(最長 3 分鐘、最大 100 MB)。使用者需要免費註冊 Publora 帳號、從 Bluesky 產生應用程式密碼,並透過 MCP(使用 Bearer 權杖驗證)或 REST API(使用 x-publora-key 標頭)連接代理。這個技能提供 create_post、get_upload_url、complete_media、list_connections 以及 post_stats 等多種工具,讓排程、草稿與媒體上傳等操作更直覺。需要注意的重點限制包括:無法透過 API 設定替代文字、所有圖片會轉換為 JPEG 格式、以及每日 25 則影片的上限。此技能只能在支援 MCP 的代理(例如 Claude Desktop、Cursor、Codex、OpenClaw,以及 claude.ai)上運作。

相容平台✓Claude Code✓Codex CLI✓Cursor
npx skills add https://github.com/publora/skills/tree/main/skills/bluesky-post

Installed? Explore more 寫作與編輯 skills: steipete/notion, langchain-ai/langchain, bytedance/podcast-generation · View all 6 →

在你喜歡的 AI 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

Bluesky 發文

使用 Publora MCP 伺服器在 Bluesky 上建立與排程貼文。支援文字貼文,並可自動偵測標籤和網址,以及圖片與影片。

先決條件

方案: 可在免費的 Starter 方案中使用。目前限制與定價請見:publora.com/pricing

開始使用

  1. 在 publora.com/register 建立帳號(免費)
  2. 在 Bluesky 的「設定」>「應用程式密碼」中產生應用程式密碼(非你的主密碼)
  3. 在 Publora Dashboard 中,使用你的帳號名稱和應用程式密碼連結 Bluesky
  4. 在 app.publora.com/dashboard/api 取得 API 金鑰
  5. 使用 Authorization: Bearer sk_YOUR_API_KEY 驗證,將你的代理連接到位於 https://mcp.publora.com 的 MCP 伺服器。在 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 位元組(十進位,非 2 MiB)
影片長度3 分鐘
影片大小50-100 MB(依長度而定)
每日影片數量25
替代文字Bluesky 本身可達 2,000 字元,但無法透過此 API 設定(見下方說明)

影片大小分級

長度最大大小
60 秒以下50 MB
60 秒 - 3 分鐘100 MB

豐富文字 Facet

Bluesky 使用獨特的豐富文字系統。Publora 會自動處理其複雜性:

  • 標籤: #hashtag 會自動偵測並變成可點擊
  • URL: 任何 URL 會自動偵測並變成可點擊
  • 位元組偏移: 能正確計算多位元組字元(表情符號、中日韓文字)

不需要特殊格式——只要自然地書寫即可。

可用工具

create_post

建立一則新的 Bluesky 貼文。

參數:

  • platforms:包含你的 Bluesky 連線 ID 的陣列(例如 ["bluesky-did:plc:abc123xyz"])
  • content:貼文文字(最多 300 個字元)
  • scheduledTime:ISO 8601 UTC 日期時間。可選:省略此參數則貼文會建立為草稿。傳送未來的時間則會排程。若傳送的時間在五分鐘(含)之前,則會被拒絕並回傳 SCHEDULED_TIME_IN_PAST,因此若要立即發文,請使用目前時間再加一分鐘。
  • mediaUrls:最多 10 個公開的 https 圖片或影片 URL。Publora 會在伺服器端下載這些檔案,並在驗證之前附加它們,因此媒體和排程可以在一次呼叫中完成。這是取代「先建立草稿,再呼叫 get_upload_url,最後呼叫 complete_media」流程的一次性替代方案。內容擷取有每小時 60 個 URL 的速率限制。

get_upload_url

取得用於媒體上傳的預先簽署 URL。

參數:

  • postGroupId:要附加媒體的貼文 ID
  • fileName:檔案名稱(例如 "photo.jpg")
  • contentType:image/jpeg、image/png、video/mp4
  • type:"image" 或 "video"

complete_media

在預先簽署的 PUT 成功後,完成透過 get_upload_url 上傳的檔案。這是可選的,因為排程也會完成待處理的媒體,但提前呼叫它可以在發佈前就呈現格式和探測錯誤。對於使用 mediaUrls 附加的媒體則不需要。

參數:

  • mediaId:由 get_upload_url 傳回的 ID

list_connections

列出你已連結的帳號及其平台 ID。請先呼叫此工具並逐字複製這些 ID;它們永遠無法被猜測。

post_stats

已發佈 Bluesky 貼文的互動計數器:反應、留言、轉發、引用和書籤。在請求時即時取得,並快取約兩小時。

參數:

  • platform:bluesky
  • platformId:你的 Bluesky 連線 ID
  • postedIds:要查詢的已發佈貼文 ID

profile_stats

已連線帳號的跟隨者、追蹤中和貼文數量。

參數:

  • platform:bluesky
  • platformId:你的 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 查閱 #開發工具 #API"

標籤和 URL 會自動變成可點擊。

包含圖片的貼文

將此貼文與儀表板截圖一起發佈到 Bluesky:
"我們新的分析檢視已經上線! #BuildInPublic"

多張圖片

建立一則 Bluesky 貼文,並附上前後對比的圖片:
"辦公室翻新完成了!真是脫胎換骨。"

注意:每則貼文最多允許 4 張圖片。

影片貼文

將這段 60 秒的展示影片發佈到 Bluesky:
"我們新手機應用程式功能的快速導覽"

排程貼文

在明天上午 10 點排程此貼文:
"早安!這是今天的生產力小技巧..."

重要限制

  1. 無法透過 API 設定替代文字。 Bluesky 發佈器會讀取媒體上的 alt 屬性,但沒有任何方式可以保留它:無論是預先簽署的上傳流程還是 mediaUrls 都不會儲存它,而傳送給 create-post 的 altTexts 值也會被靜默忽略。platformSettings 也無濟於事,因為 Bluesky 在那裡會被以 400 PLATFORM_SETTING_UNKNOWN 拒絕。先張貼圖片,然後在 Bluesky 應用程式中新增替代文字。請不要告訴使用者他們的替代文字已成功發佈。

  2. 需要應用程式密碼:你必須使用 Bluesky 應用程式密碼,而不是你的主要帳號密碼。請在「設定」>「應用程式密碼」中產生。

  3. 所有圖片會轉換為 JPEG:無論輸入格式為何(PNG、WebP、GIF),所有圖片在上傳前都會轉換為 JPEG。

  4. 嚴格的 2,000,000 位元組圖片限制:AT Protocol 強制執行精確的十進位位元組上限,而非四捨五入的 2 MiB。請壓縮至 80-85% JPEG 品質,並檢查位元組數。

  5. 基於 DID 的平台 ID:與使用數字 ID 的其他平台不同,Bluesky 使用 did:plc:xxx 格式。

  6. 影片需要電子郵件驗證:在上傳影片之前,你必須在 Bluesky 中驗證你的電子郵件。

  7. 每日 25 則影片限制:每天最多 25 部影片或 10 GB。

最佳實務

內容

  1. 精簡貼文:300 個字元比 Twitter 還短——請保持簡潔有力
  2. 自然的標籤:1-2 個相關的標籤效果很好
  3. 替代文字:值得加入,但你必須在發文後於 Bluesky 應用程式中手動新增;API 無法攜帶它
  4. URL 有效:連結是可點擊的(與某些平台不同)

時機

  • 成長中的平台:比 X 擁擠度低,更容易獲得關注
  • 技術導向的受眾:開發者和早期使用者佔多數
  • 發文頻率:每天 1-3 則

互動

  • Bluesky 偏好像真的對話
  • 回覆留言以建立社群
  • 追蹤相關使用者以拓展網路

疑難排解

錯誤原因解決方案
"Invalid credentials"密碼類型錯誤使用應用程式密碼,而非主密碼
"Image too large"超過 2,000,000 位元組壓縮至 80-85% JPEG 品質
"Content too long"超過 300 字元縮短內容(無法自動推文串)
"Video daily limit"已達 25 部影片上限等待 24 小時
"Email not verified"嘗試上傳影片在 Bluesky 設定中驗證電子郵件

Individual skills in this repo

This repo contains 8 individual skills — each has its own dedicated page.

publora/instagram-post

Use when the user wants to post or schedule to Instagram through Publora: a single image, a 2-10 image carousel, a Reel or a Story. Requires a Business account and an image or video; text-only posts are rejected by the API. Not for Threads (use threads-post).

publora/linkedin-analytics

Analyze LinkedIn performance and manage engagement through Publora. Use when the user asks how a LinkedIn post or account performed (impressions, reach, reactions, comments, reshares, follower growth) or wants to react, comment, reshare or resolve an @mention. Statistics run over the REST API, engagement over MCP tools. Not for creating posts (use linkedin-post).

publora/linkedin-post

Use when the user wants to publish or schedule a LinkedIn post through Publora: text, a multi-image grid, a video, a PDF document, or @mentions. Not for analytics, reactions, comments or reshares (use linkedin-analytics), and not for other platforms.

publora/social-post

Use when the user wants to post or schedule to YouTube, a Facebook Page or Mastodon through Publora. YouTube needs a video on every post, Facebook publishes to Pages only, Mastodon caps at 500 characters. Not for the platforms that have their own skill.

publora/telegram-post

Use when the user wants to post or schedule to a Telegram channel or group through Publora, using a bot. Covers Telegram markdown, silent delivery, link previews and forward protection. Bot API caps media captions at 1,024 characters and videos at 50 MB. Not for other platforms (each has its own skill).

publora/threads-post

Create and schedule Threads posts with image carousels and reply control via Publora MCP. Use when the user wants to post to Meta's Threads. Multi-part threading is currently disabled by the platform, so long content stays a single post. Not for Instagram (use instagram-post) or X threads (use x-post).

publora/tiktok-post

Use when the user wants to upload or schedule a TikTok video through Publora, with privacy, comment, duet, stitch and commercial-disclosure settings. Video runs 3 seconds to 10 minutes at 23+ FPS; carousels take up to 35 images. Unaudited apps can publish private videos only. Not for Reels (use instagram-post).

publora/x-post

Use when the user wants to post or schedule to X (Twitter) through Publora, including threads auto-split past 280 characters, up to 4 images, or a video up to 140 seconds. X needs a paid Publora plan. Not for Threads or Bluesky (each has its own skill).

相關技能