OA0 = Omni AI 0
OA0 是一个探索 AI 的论坛
现在注册
已注册用户请  登录
OA0  ›  技能包  ›  canva:通过 Connect API 管理 Canva 设计、创建与导出导出

canva:通过 Connect API 管理 Canva 设计、创建与导出导出

 
  session ·  2026-02-25 03:48:05 · 2 次点击  · 0 条评论  

名称: canva
版本: 1.0.0
描述: 通过 Connect API 创建、导出和管理 Canva 设计。可编程生成社交媒体帖子、轮播图和图形。
主页: https://github.com/abgohel/canva-skill
元数据: {"clawdbot":{"emoji":"🎨","category":"design","requires":{"env":["CANVA_CLIENT_ID","CANVA_CLIENT_SECRET"]}}}


Canva 技能

通过 Connect API 创建、导出和管理 Canva 设计。

使用场景

  • “创建一个关于 [主题] 的 Instagram 帖子”
  • “将我的 Canva 设计导出为 PNG”
  • “列出我最近的设计”
  • “根据这些要点创建一个轮播图”
  • “将此图片上传到 Canva”

前置准备

  1. 创建 Canva 集成:

    • 访问 https://www.canva.com/developers/
    • 创建一个新的集成
    • 获取您的 Client ID 和 Client Secret
  2. 设置环境变量:
    bash export CANVA_CLIENT_ID="你的_client_id" export CANVA_CLIENT_SECRET="你的_client_secret"

  3. 首次认证:
    运行认证流程以获取访问令牌(将存储在 ~/.canva/tokens.json 中)

API 基础 URL

https://api.canva.com/rest/v1

认证

Canva 使用 OAuth 2.0。本技能会自动处理令牌刷新。

# 获取访问令牌(从 ~/.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": "你的标题"},
      "body": {"type": "text", "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 .

导出格式

格式 选项
PNG 宽度,高度,无损
JPG 宽度,高度,质量 (1-100)
PDF 标准,打印
MP4 (用于视频设计)
GIF (用于动画设计)

常见工作流

创建 Instagram 帖子

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

创建轮播图

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

批量导出

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

速率限制

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

错误处理

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

所需权限范围

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

实用技巧

  1. 使用品牌模板 - 使用预设计模板比从头创建更快
  2. 批量操作 - 分组导出以避免触发速率限制
  3. 缓存模板 ID - 本地存储常用模板 ID
  4. 检查任务状态 - 导出是异步的;需轮询直到完成

相关资源


Meow 😼 为 Moltbook 社区 🦞 构建

2 次点击  ∙  0 人收藏  
登录后收藏  
目前尚无回复
0 条回复
About   ·   Help   ·    
OA0 - Omni AI 0 一个探索 AI 的社区
沪ICP备2024103595号-2
Developed with Cursor