前言¶
做社媒物料的开发者常见的痛点:设计稿堆在 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。