← 返回
内容创作 Key

Canva Connect

Manage Canva designs, assets, and folders via the Connect API. WHAT IT CAN DO: - List/search/organize designs and folders - Export finished designs (PNG/PDF/JPG) - Upload images to asset library - Autofill brand templates with data - Create blank designs (doc/presentation/whiteboard/custom) WHAT IT CANNOT DO: - Add content to designs (text, shapes, elements) - Edit existing design content - Upload documents (images only) - AI design generation Best for: asset pipelines, export automation, org
通过 Connect API 管理 Canva 设计、资产和文件夹。支持列举、搜索、整理设计与文件夹,导出设计(PNG/PDF/JPG),上传图片至素材库,自动填充品牌模板及创建空白设计。不支持编辑设计内容、上传文档或 AI 生成。适用于资产管理、导出自动化、整理归档及模板自动填充。触发词:/canva、“upload to canva”、“export design”、“list my designs”、“canva folder”。
coolmanns
内容创作 clawhub v1.0.0 1 版本 98917.5 Key: 需要
★ 4
Stars
📥 4,306
下载
💾 798
安装
1
版本
#latest

概述

Canva Connect

Manage Canva designs, assets, and folders via the Connect API.

What This Skill Does (and Doesn't Do)

✅ CAN DO❌ CANNOT DO
-------------------------
List/search designsAdd content to designs
Create blank designsEdit existing design content
Export designs (PNG/PDF/JPG)Upload documents (images only)
Create/manage foldersAI design generation
Move items between folders
Upload images as assets
Autofill brand templates

Realistic Use Cases

1. Asset Pipeline 🖼️

Generate diagram → upload to Canva → organize in project folder

2. Export Automation 📤

Design finished in Canva → export via CLI → use in docs/website

3. Design Organization 📁

Create project folders → move related designs → keep Canva tidy

4. Brand Template Autofill 📋

Set up template in Canva → pass data via API → get personalized output

Quick Start

# Authenticate (opens browser for OAuth)
{baseDir}/scripts/canva.sh auth

# List your designs
{baseDir}/scripts/canva.sh designs list

# Create a new design
{baseDir}/scripts/canva.sh designs create --type doc --title "My Document"

# Export a design
{baseDir}/scripts/canva.sh export <design_id> --format pdf

Setup

1. Create Canva Integration

  1. Go to canva.com/developers/integrations
  2. Click Create an integration
  3. Set scopes:
    • design:content (Read + Write)
    • design:meta (Read)
    • asset (Read + Write)
    • brandtemplate:meta (Read)
    • brandtemplate:content (Read)
    • profile (Read)
  4. Set OAuth redirect: http://127.0.0.1:3001/oauth/redirect
  5. Note Client ID and generate Client Secret

2. Configure Environment

Add to ~/.clawdbot/clawdbot.json under skills.entries:

{
  "skills": {
    "entries": {
      "canva": {
        "clientId": "YOUR_CLIENT_ID",
        "clientSecret": "YOUR_CLIENT_SECRET"
      }
    }
  }
}

Or set environment variables:

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

3. Authenticate

{baseDir}/scripts/canva.sh auth

Opens browser for OAuth consent. Tokens stored in ~/.clawdbot/canva-tokens.json.

Commands

Authentication

CommandDescription
----------------------
authStart OAuth flow (opens browser)
auth statusCheck authentication status
auth logoutClear stored tokens

Designs

CommandDescription
----------------------
designs list [--limit N]List your designs
designs get Get design details
designs create --type --title </code></td><td>Create new design</td></tr><tr><td><code>designs delete <id></code></td><td>Move design to trash</td></tr></tbody></table><p><strong>Design types:</strong> <code>doc</code>, <code>presentation</code>, <code>whiteboard</code>, <code>poster</code>, <code>instagram_post</code>, <code>facebook_post</code>, <code>video</code>, <code>logo</code>, <code>flyer</code>, <code>banner</code></p><h3>Export</h3><table><thead><tr><th>Command</th><th>Description</th></tr></thead><tbody><tr><td>---------</td><td>-------------</td></tr><tr><td><code>export <design_id> --format <fmt></code></td><td>Export design</td></tr><tr><td><code>export status <job_id></code></td><td>Check export job status</td></tr></tbody></table><p><strong>Formats:</strong> <code>pdf</code>, <code>png</code>, <code>jpg</code>, <code>gif</code>, <code>pptx</code>, <code>mp4</code></p><h3>Assets</h3><table><thead><tr><th>Command</th><th>Description</th></tr></thead><tbody><tr><td>---------</td><td>-------------</td></tr><tr><td><code>assets list</code></td><td>List uploaded assets</td></tr><tr><td><code>assets upload <file> [--name <name>]</code></td><td>Upload asset</td></tr><tr><td><code>assets get <id></code></td><td>Get asset details</td></tr><tr><td><code>assets delete <id></code></td><td>Delete asset</td></tr></tbody></table><h3>Brand Templates</h3><table><thead><tr><th>Command</th><th>Description</th></tr></thead><tbody><tr><td>---------</td><td>-------------</td></tr><tr><td><code>templates list</code></td><td>List brand templates</td></tr><tr><td><code>templates get <id></code></td><td>Get template details</td></tr><tr><td><code>autofill <template_id> --data <json></code></td><td>Autofill template with data</td></tr></tbody></table><h3>Folders</h3><table><thead><tr><th>Command</th><th>Description</th></tr></thead><tbody><tr><td>---------</td><td>-------------</td></tr><tr><td><code>folders list</code></td><td>List folders</td></tr><tr><td><code>folders create <name></code></td><td>Create folder</td></tr><tr><td><code>folders get <id></code></td><td>Get folder contents</td></tr></tbody></table><h3>User</h3><table><thead><tr><th>Command</th><th>Description</th></tr></thead><tbody><tr><td>---------</td><td>-------------</td></tr><tr><td><code>me</code></td><td>Get current user profile</td></tr></tbody></table><h2>Examples</h2><h3>Create and Export a Poster</h3><pre><code># Create {baseDir}/scripts/canva.sh designs create --type poster --title "Event Poster" # Export as PNG {baseDir}/scripts/canva.sh export DAF... --format png --output ./poster.png </code></pre><h3>Upload Brand Assets</h3><pre><code># Upload logo {baseDir}/scripts/canva.sh assets upload ./logo.png --name "Company Logo" # Upload multiple for f in ./brand/*.png; do {baseDir}/scripts/canva.sh assets upload "$f" done </code></pre><h3>Autofill a Template</h3><pre><code># List available templates {baseDir}/scripts/canva.sh templates list # Autofill with data {baseDir}/scripts/canva.sh autofill TEMPLATE_ID --data '{ "title": "Q1 Report", "subtitle": "Financial Summary", "date": "January 2026" }' </code></pre><h2>API Reference</h2><p>Base URL: <code>https://api.canva.com/rest</code></p><p>See <a href="references/api.md" target="_blank" rel="noopener">references/api.md</a> for detailed endpoint documentation.</p><h2>Troubleshooting</h2><h3>Token Expired</h3><pre><code>{baseDir}/scripts/canva.sh auth # Re-authenticate </code></pre><h3>Rate Limited</h3><p>The API has per-endpoint rate limits. The script handles backoff automatically.</p><h3>Missing Scopes</h3><p>If operations fail with 403, ensure your integration has the required scopes enabled.</p><h2>Data Files</h2><table><thead><tr><th>File</th><th>Purpose</th></tr></thead><tbody><tr><td>------</td><td>---------</td></tr><tr><td><code>~/.clawdbot/canva-tokens.json</code></td><td>OAuth tokens (encrypted)</td></tr><tr><td><code>~/.clawdbot/canva-cache.json</code></td><td>Response cache</td></tr></tbody></table></div> </div> </div> <div id="tab-versions" class="detail-content"> <div class="detail-section"> <h2>版本历史</h2> <p style="margin-bottom:12px;font-size:14px;color:#94a3b8;">共 1 个版本</p> <ul class="version-list"> <li> <div> <span class="version-tag">v1.0.0</span> <span style="font-size:11px;color:#5b6abf;margin-left:8px;background:#eef0ff;padding:1px 8px;border-radius:10px;">当前</span> </div> <div style="font-size:12px;color:#94a3b8;"> 2026-03-28 11:01 安全 安全 </div> </li> </ul> </div> </div> <div id="tab-security" class="detail-content"> <div class="detail-section"> <h2>安全检测</h2> <div class="sec-grid"> <div class="sec-card"> <h4>腾讯云安全 (Keen)</h4> <div class="sec-status sec-safe"> 安全,无风险 </div> <a href="https://tix.qq.com/search/skill?keyword=4c22bfee2d5fdc62b79fe096b45e051c" target="_blank">查看报告</a> </div> <div class="sec-card"> <h4>腾讯云安全 (Sanbu)</h4> <div class="sec-status sec-safe"> 安全,无风险 </div> <a href="https://static.cloudsec.tencent.com/html-report-v2/2026/05/25/390777_9bf92c95b4775b7340436d23a6c20774.html?q-sign-algorithm=sha1&q-ak=AKID8JMG1bzBC1dz96qNhssfFftujT1NCoFi&q-sign-time=1781281757%3B1812817757&q-key-time=1781281757%3B1812817757&q-header-list=host&q-url-param-list=&q-signature=c3a11b034fa81d5b1a152eae55f610b9e46a9102" target="_blank">查看报告</a> </div> </div> </div> </div> <!-- Recommended Skills --> <div style="margin-top:24px;"> <h2 style="font-size:18px;font-weight:600;margin-bottom:16px;">🔗 相关推荐</h2> <div class="rec-grid"> <div class="rec-card"> <span class="badge-cat" style="margin-bottom:8px;display:inline-block;">content-creation</span> <h3><a href="/s/ai-ppt-generator">Baidu Wenku AIPPT</a></h3> <div class="rec-owner">ide-rea</div> <div class="rec-desc">使用百度文库 AI 智能生成 PPT,自动根据内容选择模板。</div> <div class="rec-stats"> <span style="color:#f39c12;">★ 66</span> <span style="color:#5b6abf;">📥 46,126</span> </div> </div> <div class="rec-card"> <span class="badge-cat" style="margin-bottom:8px;display:inline-block;">content-creation</span> <h3><a href="/s/admapix">AdMapix</a></h3> <div class="rec-owner">fly0pants</div> <div class="rec-desc">广告情报与应用数据分析助手,支持搜索广告素材、分析应用排名、下载量、收入及市场洞察,用于广告素材和竞品分析。</div> <div class="rec-stats"> <span style="color:#f39c12;">★ 294</span> <span style="color:#5b6abf;">📥 136,395</span> </div> </div> <div class="rec-card"> <span class="badge-cat" style="margin-bottom:8px;display:inline-block;">data-analysis</span> <h3><a href="/s/remarkable-sync">reMarkable Tablet Sync</a></h3> <div class="rec-owner">coolmanns</div> <div class="rec-desc">通过 Cloud API (rmapi) 与 reMarkable 平板双向同步。获取手写笔记或草图,经 AI 处理后回传。支持草图优化、日记提取及向平板发送文档或图片。</div> <div class="rec-stats"> <span style="color:#f39c12;">★ 0</span> <span style="color:#5b6abf;">📥 1,489</span> </div> </div> </div> </div> </div> <script> document.addEventListener('DOMContentLoaded',function(){ document.querySelectorAll('.detail-tab').forEach(function(btn){ btn.addEventListener('click',function(e){ var tab = this.getAttribute('data-tab'); document.querySelectorAll('.detail-tab').forEach(function(b){b.classList.remove('active')}); document.querySelectorAll('.detail-content').forEach(function(c){c.classList.remove('active')}); this.classList.add('active'); var el = document.getElementById('tab-'+tab); if(el) el.classList.add('active'); }); }); }); </script> <div class="footer"> <p>Skill工具集 © 2026</p> </div></body> </html>