SuperAPI AI 工具集

canva

设计与创作

查看项目

更新于 10-15 09:49

技能介绍

用途

Canva Skill 用于通过 Canva Connect API 以编程方式创建、导出和管理 Canva 设计。它适合需要自动化生成社交媒体帖子、轮播图和图形的工作流。

典型使用场景包括:

  • 创建关于某主题的 Instagram 帖子
  • 将 Canva 设计导出为 PNG
  • 列出最近的设计
  • 根据要点创建轮播图
  • 将图片上传到 Canva

主要能力

该技能封装了 Canva Connect API 的核心操作:

  • 列出设计:GET /designs
  • 获取设计详情:GET /designs/{designId}
  • 基于模板创建设计:POST /autofills
  • 导出设计:POST /exports,并轮询导出任务状态
  • 上传素材:POST /asset-uploads
  • 列出品牌模板:GET /brand-templates

支持的导出格式包括:

  • PNG:可设置 width、height、lossless
  • JPG:可设置 width、height、quality(1-100)
  • PDF:standard、print
  • MP4:用于视频设计
  • GIF:用于动画设计

使用方式

前置条件

  1. 创建 Canva 集成:访问 https://www.canva.com/developers/ ,创建新集成,获取 Client ID 和 Client Secret。
  2. 设置环境变量:

export CANVA_CLIENT_ID="your_client_id" export CANVA_CLIENT_SECRET="your_client_secret"

  1. 首次认证:运行认证流程获取访问令牌,令牌存储在 ~/.canva/tokens.json。

API 基础信息

  • API Base URL:https://api.canva.com/rest/v1
  • 认证方式:OAuth 2.0,技能会自动处理令牌刷新。

获取访问令牌示例:

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"} } }'

导出设计:

启动导出任务

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 .

上传素材:

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 .

常见工作流

创建 Instagram 帖子:

  1. 列出品牌模板:GET /brand-templates
  2. 找到 Instagram 帖子模板
  3. 使用内容自动填充:POST /autofills
  4. 导出为 PNG 1080x1080:POST /exports
  5. 下载导出的文件

创建轮播图:

  1. 使用自动填充创建多个设计
  2. 将每个设计导出为 PNG
  3. 组合用于发布

批量导出:

  1. 列出设计:GET /designs
  2. 循环导出每个设计
  3. 下载所有文件

适用场景

  • 需要批量生成社交媒体图形和帖子
  • 需要将 Canva 设计自动化导出为多种格式
  • 需要基于品牌模板快速生成一致风格的设计
  • 需要将外部图片素材上传到 Canva

限制与注意事项

速率限制

  • 大多数端点:100 请求/分钟
  • 上传/导出:30 请求/分钟

错误处理

常见错误:

  • 401:令牌过期,需要刷新
  • 403:缺少所需权限范围
  • 429:超出速率限制
  • 404:设计/模板未找到

所需权限范围

  • design:content:read:读取设计
  • design:content:write:创建/修改设计
  • asset:read:读取素材
  • asset:write:上传素材
  • brandtemplate:content:read:读取品牌模板

使用建议

  • 使用品牌模板:预设计模板比从头创建更快
  • 批量操作:分组导出以避免速率限制
  • 缓存模板 ID:将常用模板 ID 存储在本地
  • 检查任务状态:导出是异步的,需要轮询直到完成

资源

  • Canva Connect API 文档
  • OpenAPI 规范
  • 入门套件

该技能由 Meow 为 Moltbook 社区构建。