360 Secure SkillHub
360 安全技能中心

Canva Skill

基于 Canva Connect API 与 curl 指令实现设计管理:列举设计与品牌模板、用模板自动填充生成设计、导出 PNG/JPG/PDF 等格式、上传本地图片素材。需自行创建集成、配置客户端凭据并完成首次 OAuth 授权,材料未给出授权流程与令牌刷新的具体实现。

jiangwill2023
jiangwill2023
热度 39.15
最近更新 2026-05-11 17:45:58
分类:创作依赖:代码执行 / 读写文件 / 第三方 API应用场景:演示设计 / 品牌素材 / 社交媒体 / 图像生成

安装技能

复制下面的话术发给你的 Agent,它会通过 secure-skills 检索并安装该技能。

执行命令安装此 skill: npx secure-skills-cli add canva-skill
Metadata
name
canva-skill
description
Create, export, upload assets to, and manage Canva designs via the Canva Connect API. Use when the user wants to create social posts, posters, PPT/slide visuals, export Canva designs as PNG/JPG/PDF, list recent Canva designs, upload local images to Canva, or autofill brand templates with content.

Canva Skill

Use Canva Connect API for design creation, export, and asset upload workflows.

Prerequisites

Create a Canva Integration:

  1. Go to https://www.canva.com/developers/
  2. Create a new integration
  3. Get your Client ID and Client Secret

Set environment variables:

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

Authenticate on first use and store tokens in ~/.canva/tokens.json.

API Base URL

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

Authentication

Get access token from local token file:

ACCESS_TOKEN=$(cat ~/.canva/tokens.json | jq -r '.access_token')

Refresh tokens automatically when the auth flow supports it.

Core Operations

List Designs

curl -s "https://api.canva.com/rest/v1/designs" \
  -H "Authorization: Bearer $ACCESS_TOKEN" | jq .

Get Design Details

curl -s "https://api.canva.com/rest/v1/designs/{designId}" \
  -H "Authorization: Bearer $ACCESS_TOKEN" | jq .

Create Design from Template

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

Export Design

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 .

Upload Asset

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

List Brand Templates

curl -s "https://api.canva.com/rest/v1/brand-templates" \
  -H "Authorization: Bearer $ACCESS_TOKEN" | jq .

Export Formats

  • PNG: width, height, lossless
  • JPG: width, height, quality (1-100)
  • PDF: standard, print
  • MP4: for video designs
  • GIF: for animated designs

Common Workflows

Create Instagram Post

  1. List brand templates
  2. Find an Instagram post template
  3. Autofill with content
  4. Export as PNG 1080x1080
  5. Download exported file

Create Carousel

  1. Create multiple designs using autofill
  2. Export each as PNG
  3. Combine for posting

Batch Export

  1. List designs
  2. Loop through and export each
  3. Download all files

Error Handling

Handle common errors clearly:

  • 401: Token expired, refresh needed
  • 403: Missing required scope
  • 404: Design/template not found
  • 429: Rate limit exceeded

Required Scopes

  • design:content:read
  • design:content:write
  • asset:read
  • asset:write
  • brandtemplate:content:read

Tips

  • Prefer Brand Templates for posters and slides when available.
  • Batch exports to reduce repetitive work.
  • Cache commonly used template IDs locally.
  • Poll export jobs until complete before downloading.

Current Status

This local skill skeleton is installed in the workspace, but Canva API use is not ready until the integration credentials and first-time OAuth authentication are completed.