8
n8n 中文网amn8n.com

为您的内容创建自动更新的图像和重定向URL

高级

这是一个Social Media领域的自动化工作流,包含 19 个节点。主要使用 Gmail, Github, EditImage, FormTrigger, HttpRequest 等节点。 使用GitHub动态图像和URL重定向创建常青内容

前置要求
  • Google 账号和 Gmail API 凭证
  • GitHub Personal Access Token
  • 可能需要目标 API 的认证凭证
工作流预览
可视化展示节点连接关系,支持缩放和平移
导出工作流
复制以下 JSON 配置到 n8n 导入,即可使用此工作流
{
  "id": "FVsgc9AjW27LUTIf",
  "meta": {
    "instanceId": "fb924c73af8f703905bc09c9ee8076f48c17b596ed05b18c0ff86915ef8a7c4a",
    "templateCredsSetupCompleted": true
  },
  "name": "为您的内容创建自动更新的图像和重定向 URL",
  "tags": [],
  "nodes": [
    {
      "id": "d74bab24-d81c-4d18-8539-4aa0d71cb22a",
      "name": "点击\"执行工作流\"时",
      "type": "n8n-nodes-base.manualTrigger",
      "position": [
        1680,
        140
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "10c33346-1562-4dff-afdd-abeaa146ea20",
      "name": "创建新的 URL 重定向",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        0,
        -180
      ],
      "parameters": {
        "url": "https://api.shorten.rest/aliases",
        "method": "POST",
        "options": {},
        "jsonBody": "={\n  \"destinations\":[{\"url\":\"https://en.wikipedia.org/wiki/{{ $now.format('DDD').split(',')[0].replaceAll(' ','_') }}\"}]\n}",
        "sendBody": true,
        "sendQuery": true,
        "specifyBody": "json",
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth",
        "queryParameters": {
          "parameters": [
            {
              "name": "domainName",
              "value": "short.fyi"
            },
            {
              "name": "aliasName",
              "value": "today-in-history"
            }
          ]
        }
      },
      "credentials": {
        "httpHeaderAuth": {
          "id": "8641qBq1Wqw8iY1T",
          "name": "Header Auth account 4"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "ebf4281e-fc0b-4309-bfed-0aa417fdf638",
      "name": "更新 URL 重定向",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        220,
        160
      ],
      "parameters": {
        "url": "https://api.shorten.rest/aliases",
        "method": "PUT",
        "options": {
          "response": {
            "response": {
              "neverError": true
            }
          }
        },
        "jsonBody": "={\n  \"destinations\":[{\"url\":\"https://en.wikipedia.org/wiki/{{ $now.format('DDD').split(',')[0].replaceAll(' ','_') }}\"}]\n}",
        "sendBody": true,
        "sendQuery": true,
        "specifyBody": "json",
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth",
        "queryParameters": {
          "parameters": [
            {
              "name": "domainName",
              "value": "short.fyi"
            },
            {
              "name": "aliasName",
              "value": "today-in-history"
            }
          ]
        }
      },
      "credentials": {
        "httpHeaderAuth": {
          "id": "8641qBq1Wqw8iY1T",
          "name": "Header Auth account 4"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "847b893b-fc79-40b8-8eee-5844be6e9dd6",
      "name": "计划触发器",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        -20,
        160
      ],
      "parameters": {
        "rule": {
          "interval": [
            {
              "triggerAtMinute": 8
            }
          ]
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "bb20131d-cb3e-4a78-aa54-e931dbe183d0",
      "name": "计划触发器1",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        -20,
        320
      ],
      "parameters": {
        "rule": {
          "interval": [
            {
              "field": "hours",
              "triggerAtMinute": 1
            }
          ]
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "e8944262-fe50-4a22-84f6-09ce10576073",
      "name": "便签",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        700,
        -180
      ],
      "parameters": {
        "width": 480,
        "height": 520,
        "content": "## 1. 工作流贴纸内部"
      },
      "typeVersion": 1
    },
    {
      "id": "1c2c841d-4a28-4b5d-bb95-ccc3fdd9530c",
      "name": "便签1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -80,
        -320
      ],
      "parameters": {
        "width": 700,
        "height": 360,
        "content": "## 仅运行这些节点一次"
      },
      "typeVersion": 1
    },
    {
      "id": "6d21ad0c-1f3f-48c8-8e12-b15b45f4dfd8",
      "name": "便签2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -80,
        60
      ],
      "parameters": {
        "color": 5,
        "width": 700,
        "height": 440,
        "content": "## 这些触发器定期更新图像和 URL"
      },
      "typeVersion": 1
    },
    {
      "id": "fe74d1cb-9274-4c51-891e-f5ec3564d1e5",
      "name": "创建图像",
      "type": "n8n-nodes-base.editImage",
      "position": [
        220,
        320
      ],
      "parameters": {
        "options": {
          "fileName": "dynamic_img"
        },
        "operation": "multiStep",
        "operations": {
          "operations": [
            {
              "width": 640,
              "height": 480,
              "operation": "create"
            },
            {
              "color": "#00a2bb00",
              "operation": "draw",
              "endPositionX": "={{ $parameter.operations.operations[0].width }}",
              "endPositionY": "={{ $parameter.operations.operations[0].height }}",
              "startPositionX": 0,
              "startPositionY": 0
            },
            {
              "color": "#efefef00",
              "operation": "draw",
              "endPositionX": "={{ $parameter.operations.operations[0].width-5 }}",
              "endPositionY": "={{ $parameter.operations.operations[0].height-5 }}",
              "startPositionX": 5,
              "startPositionY": 5
            },
            {
              "font": "/usr/share/fonts/truetype/msttcorefonts/Courier_New.ttf",
              "text": "TODAY",
              "fontSize": 72,
              "operation": "text",
              "positionX": 213,
              "positionY": 120
            },
            {
              "font": "/usr/share/fonts/truetype/msttcorefonts/Courier_New_Bold.ttf",
              "text": "={{ $now.setLocale('en').toLocaleString(DateTime.DATE_MED) }}",
              "fontSize": 72,
              "operation": "text",
              "positionX": "={{ ($parameter.operations.operations[0].width - ($parameter.operations.operations[0].width * $now.setLocale('en').toLocaleString(DateTime.DATE_MED).length / 15))/2 }}",
              "positionY": 250
            },
            {
              "font": "/usr/share/fonts/truetype/msttcorefonts/Courier_New_Bold.ttf",
              "text": "={{ $now.toFormat('HH:mm') }}",
              "fontSize": 72,
              "operation": "text",
              "positionX": "={{ ($parameter.operations.operations[0].width - ($parameter.operations.operations[0].width * $now.toFormat('HH:mm').length / 15))/2 }}",
              "positionY": 350
            }
          ]
        }
      },
      "typeVersion": 1
    },
    {
      "id": "169d25a7-c3b8-4fb6-abc4-2ced669e90cf",
      "name": "更新 GitHub 文件",
      "type": "n8n-nodes-base.github",
      "position": [
        440,
        320
      ],
      "webhookId": "e8a64032-b2cb-4e8a-addf-84dd90a6565d",
      "parameters": {
        "owner": {
          "__rl": true,
          "mode": "name",
          "value": "ed-parsadanyan"
        },
        "filePath": "=n8n-examples/dynamic-images/{{ $binary.data.fileName }}.{{ $binary.data.fileExtension }}",
        "resource": "file",
        "operation": "edit",
        "binaryData": true,
        "repository": {
          "__rl": true,
          "mode": "list",
          "value": "public-tests",
          "cachedResultUrl": "https://github.com/ed-parsadanyan/public-tests",
          "cachedResultName": "public-tests"
        },
        "commitMessage": "=dynamic_img_update",
        "authentication": "oAuth2"
      },
      "credentials": {
        "githubOAuth2Api": {
          "id": "3",
          "name": "n8n-auth-edp"
        }
      },
      "typeVersion": 1.1
    },
    {
      "id": "b0a89ef7-862a-4648-9f9b-b941b117f25a",
      "name": "便签3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1220,
        -180
      ],
      "parameters": {
        "width": 380,
        "height": 520,
        "content": "## 2. 在 n8n 表单中"
      },
      "typeVersion": 1
    },
    {
      "id": "eb75a8d6-1e2f-442a-8ac3-14406bf7edc9",
      "name": "带动态图像的表单",
      "type": "n8n-nodes-base.formTrigger",
      "position": [
        1360,
        140
      ],
      "webhookId": "bd9ef188-7983-4474-b82b-c00c08054426",
      "parameters": {
        "options": {
          "customCss": ":root {\n\t--font-family: 'Open Sans', sans-serif;\n\t--font-weight-normal: 400;\n\t--font-weight-bold: 600;\n\t--font-size-body: 12px;\n\t--font-size-label: 14px;\n\t--font-size-test-notice: 12px;\n\t--font-size-input: 14px;\n\t--font-size-header: 20px;\n\t--font-size-paragraph: 14px;\n\t--font-size-link: 12px;\n\t--font-size-error: 12px;\n\t--font-size-html-h1: 28px;\n\t--font-size-html-h2: 20px;\n\t--font-size-html-h3: 16px;\n\t--font-size-html-h4: 14px;\n\t--font-size-html-h5: 12px;\n\t--font-size-html-h6: 10px;\n\t--font-size-subheader: 14px;\n\n\t/* Colors */\n\t--color-background: #fbfcfe;\n\t--color-test-notice-text: #e6a23d;\n\t--color-test-notice-bg: #fefaf6;\n\t--color-test-notice-border: #f6dcb7;\n\t--color-card-bg: #ffffff;\n\t--color-card-border: #dbdfe7;\n\t--color-card-shadow: rgba(99, 77, 255, 0.06);\n\t--color-link: #7e8186;\n\t--color-header: #525356;\n\t--color-label: #555555;\n\t--color-input-border: #dbdfe7;\n\t--color-input-text: #71747A;\n\t--color-focus-border: rgb(90, 76, 194);\n\t--color-submit-btn-bg: #ff6d5a;\n\t--color-submit-btn-text: #ffffff;\n\t--color-error: #ea1f30;\n\t--color-required: #ff6d5a;\n\t--color-clear-button-bg: #7e8186;\n\t--color-html-text: #555;\n\t--color-html-link: #ff6d5a;\n\t--color-header-subtext: #7e8186;\n\n\t/* Border Radii */\n\t--border-radius-card: 8px;\n\t--border-radius-input: 6px;\n\t--border-radius-clear-btn: 50%;\n\t--card-border-radius: 8px;\n\n\t/* Spacing */\n\t--padding-container-top: 24px;\n\t--padding-card: 24px;\n\t--padding-test-notice-vertical: 12px;\n\t--padding-test-notice-horizontal: 24px;\n\t--margin-bottom-card: 16px;\n\t--padding-form-input: 12px;\n\t--card-padding: 24px;\n\t--card-margin-bottom: 16px;\n\n\t/* Dimensions */\n\t--container-width: 448px;\n\t--submit-btn-height: 48px;\n\t--checkbox-size: 18px;\n\n\t/* Others */\n\t--box-shadow-card: 0px 4px 16px 0px var(--color-card-shadow);\n\t--opacity-placeholder: 0.5;\n}\n\ndiv.html img {\n\tmax-width: 100%;\n\theight: auto;\n\tdisplay: block;\n\tmargin-bottom: 8px;\n}",
          "appendAttribution": false
        },
        "formTitle": "Test Form",
        "formFields": {
          "values": [
            {
              "html": "<!-- Your custom HTML here --->\n<h2>Note: image is clickable!</h2>\n<a href=\"https://short.fyi/today-in-history\" target=\"_blank\">\n  <img src=\"https://raw.githubusercontent.com/ed-parsadanyan/public-tests/main/n8n-examples/dynamic-images/dynamic_img.png\" alt=\"\">\n</a>",
              "fieldType": "html",
              "elementName": "test"
            }
          ]
        },
        "formDescription": "This form contains a dynamic image"
      },
      "typeVersion": 2.2
    },
    {
      "id": "ada5f98f-3b52-449b-b573-ef24bbdc4554",
      "name": "获取文件",
      "type": "n8n-nodes-base.github",
      "position": [
        1840,
        140
      ],
      "webhookId": "e8a64032-b2cb-4e8a-addf-84dd90a6565d",
      "parameters": {
        "owner": {
          "__rl": true,
          "mode": "name",
          "value": "ed-parsadanyan"
        },
        "filePath": "=n8n-examples/dynamic-images/dynamic_img.png",
        "resource": "file",
        "operation": "get",
        "repository": {
          "__rl": true,
          "mode": "list",
          "value": "public-tests",
          "cachedResultUrl": "https://github.com/ed-parsadanyan/public-tests",
          "cachedResultName": "public-tests"
        },
        "authentication": "oAuth2",
        "asBinaryProperty": false,
        "additionalParameters": {}
      },
      "credentials": {
        "githubOAuth2Api": {
          "id": "3",
          "name": "n8n-auth-edp"
        }
      },
      "typeVersion": 1.1
    },
    {
      "id": "0fd7ecea-7e0e-4318-8dbc-91d2e20778a6",
      "name": "发送消息",
      "type": "n8n-nodes-base.gmail",
      "position": [
        2000,
        140
      ],
      "webhookId": "e0ded4d7-d2c8-43e4-9833-b346df3d75e8",
      "parameters": {
        "sendTo": "teds.tech.talks@gmail.com",
        "message": "=<h2>Dynamic image</h2>\n<a href=\"https://short.fyi/today-in-history\" target=\"_blank\">\n  <img src=\"{{ $json.download_url }}\" />\n</a>",
        "options": {},
        "subject": "Test Image"
      },
      "credentials": {
        "gmailOAuth2": {
          "id": "UllrXlZsDnkdA3tT",
          "name": "Gmail account"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "8058d4d0-a60f-4390-a335-5b5e494ec45b",
      "name": "便签4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1640,
        -180
      ],
      "parameters": {
        "width": 500,
        "height": 520,
        "content": "## 3. 通过电子邮件"
      },
      "typeVersion": 1
    },
    {
      "id": "bb16c18e-17d8-4f07-8000-7e21acf0ac8e",
      "name": "创建文件",
      "type": "n8n-nodes-base.github",
      "position": [
        220,
        -180
      ],
      "webhookId": "e8a64032-b2cb-4e8a-addf-84dd90a6565d",
      "parameters": {
        "owner": {
          "__rl": true,
          "mode": "name",
          "value": "ed-parsadanyan"
        },
        "filePath": "=n8n-examples/dynamic-images/dynamic_img.png",
        "resource": "file",
        "repository": {
          "__rl": true,
          "mode": "list",
          "value": "public-tests",
          "cachedResultUrl": "https://github.com/ed-parsadanyan/public-tests",
          "cachedResultName": "public-tests"
        },
        "fileContent": "some content",
        "commitMessage": "initial creation",
        "authentication": "oAuth2"
      },
      "credentials": {
        "githubOAuth2Api": {
          "id": "3",
          "name": "n8n-auth-edp"
        }
      },
      "typeVersion": 1.1
    },
    {
      "id": "e2a06369-6136-474b-a6f8-133f193aca83",
      "name": "获取下载 URL",
      "type": "n8n-nodes-base.github",
      "position": [
        440,
        -180
      ],
      "webhookId": "e8a64032-b2cb-4e8a-addf-84dd90a6565d",
      "parameters": {
        "owner": {
          "__rl": true,
          "mode": "name",
          "value": "ed-parsadanyan"
        },
        "filePath": "=n8n-examples/dynamic-images/dynamic_img.png",
        "resource": "file",
        "operation": "get",
        "repository": {
          "__rl": true,
          "mode": "list",
          "value": "public-tests",
          "cachedResultUrl": "https://github.com/ed-parsadanyan/public-tests",
          "cachedResultName": "public-tests"
        },
        "authentication": "oAuth2",
        "asBinaryProperty": false,
        "additionalParameters": {}
      },
      "credentials": {
        "githubOAuth2Api": {
          "id": "3",
          "name": "n8n-auth-edp"
        }
      },
      "typeVersion": 1.1
    },
    {
      "id": "99117594-4f37-4d9a-b344-35264547ebe8",
      "name": "便签5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        680,
        -320
      ],
      "parameters": {
        "color": 4,
        "width": 1480,
        "height": 680,
        "content": "# 使用案例"
      },
      "typeVersion": 1
    },
    {
      "id": "8b3b3e7a-3c99-41b8-bcd5-3a8389a786ef",
      "name": "便签6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -80,
        -780
      ],
      "parameters": {
        "color": 3,
        "width": 700,
        "height": 440,
        "content": "# 这是什么?"
      },
      "typeVersion": 1
    }
  ],
  "active": true,
  "pinData": {},
  "settings": {
    "callerPolicy": "workflowsFromSameOwner",
    "executionOrder": "v1",
    "saveDataSuccessExecution": "all"
  },
  "versionId": "7747c3d6-0dc7-40af-b206-3804ed71b4b3",
  "connections": {
    "Get a file": {
      "main": [
        [
          {
            "node": "Send a message",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Create Image": {
      "main": [
        [
          {
            "node": "Update GitHub file",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Schedule Trigger": {
      "main": [
        [
          {
            "node": "Update URL redirection",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Schedule Trigger1": {
      "main": [
        [
          {
            "node": "Create Image",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "When clicking ‘Execute workflow’": {
      "main": [
        [
          {
            "node": "Get a file",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
常见问题

如何使用这个工作流?

复制上方的 JSON 配置代码,在您的 n8n 实例中创建新工作流并选择「从 JSON 导入」,粘贴配置后根据需要修改凭证设置即可。

这个工作流适合什么场景?

高级 - 社交媒体

需要付费吗?

本工作流完全免费,您可以直接导入使用。但请注意,工作流中使用的第三方服务(如 OpenAI API)可能需要您自行付费。

工作流信息
难度等级
高级
节点数量19
分类1
节点类型8
难度说明

适合高级用户,包含 16+ 个节点的复杂工作流

外部链接
在 n8n.io 查看

分享此工作流