关于 canva
通过 Canva Connect API 创建、导出和管理 Canva 设计的技能,涵盖模板填充、资产上传、设计查询及多种格式导出。
主要功能
- 01查询设计和品牌模板
- 02基于模板创建设计
- 03向 Canva 上传资产
- 04以多种格式导出设计
- 05自动刷新 OAuth 令牌
适用场景
- 01用品牌模板制作 Instagram 帖子
- 02根据要点制作轮播图
- 03将设计导出为 PNG 或 PDF
- 04向 Canva 上传图片
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ abgohel/ canva-skill --skill canva安装后在 Claude Code 中输入/canva确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
.gitignoreREADME.mdpackage.jsonscripts/canva-auth.shcanva.sh详细介绍
Canva 技能
通过 Connect API 创建、导出和管理 Canva 设计。
适用场景
- “创建一篇关于 [主题] 的 Instagram 帖子”
- “将我的 Canva 设计导出为 PNG”
- “列出我最近的设计”
- “根据这些要点创建轮播图”
- “将这张图片上传到 Canva”
前提条件
-
创建 Canva 集成:
- 前往 https://www.canva.com/developers/
- 创建新的集成
- 获取 Client ID 和 Client Secret
-
设置环境变量:
export CANVA_CLIENT_ID="your_client_id" export CANVA_CLIENT_SECRET="your_client_secret" -
进行身份验证(首次使用时): 运行身份验证流程以获取访问令牌(存储在
~/.canva/tokens.json中)
API 基础 URL
https://api.canva.com/rest/v1
身份验证
Canva 使用 OAuth 2.0。该技能会自动处理令牌刷新。
# Get access token (stored in ~/.canva/tokens.json)
ACCESS_TOKEN=$(cat ~/.canva/tokens.json | jq -r '.access_token')
核心操作
列出设计
curl -s "https://api.canva.com/rest/v1/designs" \
-H "Authorization: Bearer $ACCESS_TOKEN" | jq .
获取设计详情
curl -s "https://api.canva.com/rest/v1/designs/{designId}" \
-H "Authorization: Bearer $ACCESS_TOKEN" | jq .
根据模板创建设计
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"}
}
}'
导出设计
# Start export job
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}
}'
# Check export status
curl -s "https://api.canva.com/rest/v1/exports/{jobId}" \
-H "Authorization: Bearer $ACCESS_TOKEN" | jq .
上传素材
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
列出品牌模板
curl -s "https://api.canva.com/rest/v1/brand-templates" \
-H "Authorization: Bearer $ACCESS_TOKEN" | jq .
导出格式
| 格式 | 选项 |
|---|---|
| PNG | 宽度、高度、无损 |
| JPG | 宽度、高度、质量(1-100) |
| 标准、打印 | |
| MP4 | (用于视频设计) |
| GIF | (用于动画设计) |
常见工作流
创建 Instagram 帖子
- 列出品牌模板:
GET /brand-templates - 找到 Instagram 帖子模板
- 使用内容自动填充:
POST /autofills - 导出为 1080x1080 PNG:
POST /exports - 下载导出的文件
创建轮播图
- 使用自动填充创建多个设计
- 将每个设计导出为 PNG
- 合并后发布
批量导出
- 列出设计:
GET /designs - 遍历并导出每个设计
- 下载所有文件
速率限制
- 大多数端点:每分钟 100 次请求
- 上传/导出:每分钟 30 次请求
错误处理
常见错误:
401- 令牌已过期,需要刷新403- 缺少必需的权限范围429- 超出速率限制404- 未找到设计/模板
所需权限范围
design:content:read- 读取设计design:content:write- 创建/修改设计asset:read- 读取素材asset:write- 上传素材brandtemplate:content:read- 读取品牌模板
提示
- 使用品牌模板 - 预先设计好的模板比从头创建更快
- 批量操作 - 将导出任务分组,以避免触发速率限制
- 缓存模板 ID - 在本地保存常用的模板 ID
- 检查任务状态 - 导出是异步的;请轮询状态,直到任务完成
资源
由 Meow 😼 为 Moltbook 社区打造 🦞
评论
支持 Markdown