前言¶
做社媒物料的開發者常見的痛點:設計稿堆在 Canva 裏,文案和素材散落在運營手上,每改一版都要人工導出、再發回羣裏。Canva Skill 的思路是把「創建設計、導出文件、上傳素材」變成 API 調用,讓 Agent 可以直接驅動 Canva 產出成品。下面介紹這個 Skill 的定位、安裝和用法。
這是什麼¶
Canva(座標 @clawhub_abgohel/canva)是一個基於 SKILL.md 格式的 Agent Skill,由 abgohel 發佈在 ClawHub,來源 clawhub,版本 1.0.0,分類 design-media。官方地址 https://api.skillhub.cn/zechuan-zhuchuang/canva,上游倉庫 https://clawhub.ai/abgohel/canva。
它解決的問題:通過 Canva Connect API 創建、導出和管理 Canva 設計,以編程方式生成社交媒體帖子、輪播圖及圖形。Skill 頁面評分 100000,下載 11787 次,安裝 1425 次,標籤 requires_api_key=true——意味着需要自備 Canva 憑據。
核心功能¶
Skill 的能力全部落在 Canva Connect API(Base URL https://api.canva.com/rest/v1)上:
- 列出設計、讀取單個設計詳情
- 基於品牌模板調用 autofills 接口填充內容,生成新設計
- 發起導出任務(異步),支持 PNG、JPG、PDF、MP4、GIF 五種格式
- 上傳圖片等素材到 Canva 資產庫
- 列出品牌模板(brand templates)
認證走 OAuth 2.0,Skill 自動處理 token 刷新,token 存儲在 ~/.canva/tokens.json。
安裝與啓用¶
安裝命令來自官方 Skill 頁面:
openclaw skills install @abgohel/canva
裝完還要自建 Canva Integration 並配置憑據。先到 https://www.canva.com/developers/ 創建新的 integration,拿到 Client ID 和 Client Secret,然後設置環境變量:
export CANVA_CLIENT_ID="your_client_id"
export CANVA_CLIENT_SECRET="your_client_secret"
首次使用先跑一遍授權流程拿 access token,之後按 Skill 提示調用即可:
# token 寫入 ~/.canva/tokens.json
ACCESS_TOKEN=$(cat ~/.canva/tokens.json | jq -r '.access_token')
Cursor / Codex CLI / Claude Code 的接入方式官方資料未分別說明,這裏不展開。
典型用法¶
下面幾個例子來自官方 SKILL.md,可直接復現。
先看有哪些品牌模板可用:
curl -s "https://api.canva.com/rest/v1/brand-templates" \
-H "Authorization: Bearer $ACCESS_TOKEN" | jq .
選定模板後,用 autofills 接口填入標題和正文,生成一張設計:
curl -X POST "https://api.canva.com/rest/v1/autofills" \
-H "Authorization: Bearer $ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"brand_template_id": "TEMPLATE_ID",
"data": {
"title": {"type": "text", "text": "Your Title"},
"body": {"type": "text", "text": "Your body text"}
}
}'
導出是異步任務,先發起,再輪詢狀態,完成後下載:
# 發起導出
curl -X POST "https://api.canva.com/rest/v1/exports" \
-H "Authorization: Bearer $ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"design_id": "DESIGN_ID",
"format": {"type": "png", "width": 1080, "height": 1080}
}'
# 查詢導出狀態
curl -s "https://api.canva.com/rest/v1/exports/{jobId}" \
-H "Authorization: Bearer $ACCESS_TOKEN" | jq .
素材上傳走同一個 API:
curl -X POST "https://api.canva.com/rest/v1/asset-uploads" \
-H "Authorization: Bearer $ACCESS_TOKEN" \
-H "Content-Type: application/octet-stream" \
-H 'Asset-Upload-Metadata: {"name": "my-image.png"}' \
--data-binary @image.png
官方還給了三個組合工作流:Instagram 帖子(列模板 → autofill → 導出 1080×1080 PNG → 下載)、輪播圖(多次 autofill 生成多張 → 逐張導出 PNG)、批量導出(列全部設計 → 循環發起導出 → 下載所有文件)。
適用場景與注意¶
適合:需要在 Agent 流程或 CI 裏批量產出社媒圖、輪播圖,且設計規範已沉澱在 Canva 品牌模板裏的團隊。前提是能自建 Canva Integration。
限制與坑:
- 需要的 scope 包括 design:content:read/write、asset:read/write、brandtemplate:content:read,缺權限會報 403
- 導出是異步任務,要輪詢,不能發完就當完成
- 速率限制:多數接口 100 次/分鐘,上傳和導出 30 次/分鐘,批量操作需自行節流
- 常見錯誤:401 token 過期需刷新、429 觸發限流、404 設計或模板不存在
- 官方建議:優先用品牌模板而非從零創建;緩存常用模板 ID;批量導出分組執行以避開限流
License 爲 MIT-0。Skill 頁面簡介同時聲明:內容由 AI 輔助生成,僅供參考,決策與落地由使用者自行負責。
結尾¶
這個 Skill 的價值在於把 Canva 的建設計、填內容、導出、素材管理收斂成一套帶現成 curl 示例的 API 操作清單,適合做社媒內容批量生產的 Agent。官方地址:https://api.skillhub.cn/zechuan-zhuchuang/canva。