8
n8n 中文网amn8n.com

MS_黄金价格追踪

中级

这是一个Crypto Trading领域的自动化工作流,包含 12 个节点。主要使用 Set, Code, Merge, Telegram, HttpRequest 等节点。 支持多货币转换的Telegram黄金价格自动追踪器 📈

前置要求
  • Telegram Bot Token
  • 可能需要目标 API 的认证凭证
工作流预览
可视化展示节点连接关系,支持缩放和平移
导出工作流
复制以下 JSON 配置到 n8n 导入,即可使用此工作流
{
  "id": "8647Dl470mxxSj2Q",
  "meta": {
    "instanceId": "c92a0c76586da37fb3ac600956b62e842bfa4bd5f52acc7feb4e8a6e75ca1381",
    "templateCredsSetupCompleted": true
  },
  "name": "MS_GOLD_PRICING",
  "tags": [],
  "nodes": [
    {
      "id": "8a30ec34-036d-4b20-b434-1e2d6cd27c98",
      "name": "计划触发器",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        -360,
        0
      ],
      "parameters": {
        "rule": {
          "interval": [
            {
              "field": "minutes",
              "minutesInterval": 15
            }
          ]
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "7082fdcf-2877-4f36-b90a-2178ca1505a4",
      "name": "报告:准备",
      "type": "n8n-nodes-base.code",
      "position": [
        840,
        20
      ],
      "parameters": {
        "jsCode": "/*\n  n8n Code Node – Gold Table v2 (Fixed Alignment + Thousand Separators)\n  IN  : same JSON payload\n  OUT : { telegram_text : \"<Markdown V2>\" }\n*/\n\nconst data = $json;\nconst meta = data.items[0];\nconst gPerOz = 31.1034768;\nconst usdGram = meta.xauPrice / gPerOz;\nconst rates = data.rates;\n\n// Fixed formatting function with correct column widths and thousand separators\nfunction fmt(n, w) {\n  const rounded = Math.round(n);\n  const formatted = rounded.toLocaleString('en-US'); // Adds thousand separators\n  return formatted.padStart(w, ' ');\n}\n\nfunction esc(txt) {\n  return txt.replace(/([_*[\\]()~`>#+\\-=|{}.!])/g, '\\\\$1');\n}\n\nconst targets = [\n  { flag: '🇪🇬', code: $('Set Currency').first().json.currency },\n  { flag: '🇺🇸', code: 'USD' },\n];\n\nlet rows = '';\nfor (const t of targets) {\n  const fx = rates[t.code] || 1;\n  const g24 = usdGram * fx;\n  \n  // Format each column with the exact width from the table structure\n  const currency = `${t.flag} ${t.code}`.padEnd(9, ' ');  // \"Cur\" column is 8 chars wide (updated)\n  const col24k = fmt(g24, 6);          // \"24k g\" column is 6 chars wide  \n  const col21k = fmt(g24 * 0.875, 6);  // \"21k g\" column is 6 chars wide\n  const col18k = fmt(g24 * 0.75, 6);   // \"18k g\" column is 6 chars wide\n  const col24oz = fmt(g24 * gPerOz, 8); // \"24k oz\" column is 8 chars wide\n  \n  rows += `│ ${currency} │ ${col24k} │ ${col21k} │ ${col18k} │ ${col24oz} │\\n`;\n}\n\nconst arrow = meta.pcXau >= 0 ? '🔺' : '🔻';\nconst pct = meta.pcXau.toFixed(2).replace('-', '');\n\nconst text = `🪙 *Gold per gram / oz*\n\\`\\`\\`\n┌──────────┬────────┬────────┬────────┬──────────┐\n│ Cur      │  24k g │  21k g │  18k g │  24k oz  │\n├──────────┼────────┼────────┼────────┼──────────┤\n${rows}└──────────┴────────┴────────┴────────┴──────────┘\n\\`\\`\\`\n${arrow} *${esc(pct)}\\\\%* _exrate\\\\-api_`;\n\nreturn [{ json: { telegram_text: text } }];"
      },
      "typeVersion": 2
    },
    {
      "id": "a6a78262-ed4e-4ecd-8fc9-7815548d1838",
      "name": "发送短信",
      "type": "n8n-nodes-base.telegram",
      "position": [
        1160,
        20
      ],
      "webhookId": "6cad3897-95a7-4b25-8fcb-d1c6aac04aa2",
      "parameters": {
        "text": "={{ $json.telegram_text }}",
        "chatId": "={{ $('Set Currency').item.json.telegram_chat_id }}",
        "additionalFields": {
          "parse_mode": "Markdown",
          "appendAttribution": false
        }
      },
      "credentials": {
        "telegramApi": {
          "id": "OymlVCuTPYhVa2B9",
          "name": "Telegram account"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "0cbfe028-2702-48fa-9370-a7e218e4aa79",
      "name": "便签",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -140,
        -80
      ],
      "parameters": {
        "color": 5,
        "width": 220,
        "height": 240,
        "content": "## 设置输入"
      },
      "typeVersion": 1
    },
    {
      "id": "7a41155a-e736-405e-bb18-3203fdcdf3dd",
      "name": "便签3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        780,
        -60
      ],
      "parameters": {
        "color": 3,
        "width": 220,
        "height": 240,
        "content": "## 报告"
      },
      "typeVersion": 1
    },
    {
      "id": "b9bcc84e-b758-4309-b160-1d7d435e86ca",
      "name": "便签4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1100,
        -60
      ],
      "parameters": {
        "color": 6,
        "width": 220,
        "height": 240,
        "content": "## 发送"
      },
      "typeVersion": 1
    },
    {
      "id": "b8c88e6d-7a4c-417b-a4e8-1533ebab27b5",
      "name": "转换货币",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        240,
        180
      ],
      "parameters": {
        "url": "https://open.er-api.com/v6/latest/USD",
        "options": {}
      },
      "typeVersion": 4.2
    },
    {
      "id": "d5000d8e-559e-4e23-a751-17af0ec75198",
      "name": "获取价格",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        240,
        -160
      ],
      "parameters": {
        "url": "https://data-asg.goldprice.org/dbXRates/USD",
        "options": {
          "timeout": 5000
        },
        "sendHeaders": true,
        "headerParameters": {
          "parameters": [
            {
              "name": "User-Agent",
              "value": "Mozilla/5.0 (iPhone; CPU iPhone OS 16_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.6 Mobile/15E148 Safari/604.1"
            }
          ]
        }
      },
      "retryOnFail": true,
      "typeVersion": 4.2
    },
    {
      "id": "c552222e-efc9-4c61-ba3c-f1a33d24765a",
      "name": "便签5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        180,
        -240
      ],
      "parameters": {
        "color": 3,
        "width": 220,
        "height": 240,
        "content": "## 定价"
      },
      "typeVersion": 1
    },
    {
      "id": "1506df90-1c50-4744-b776-ff99e2b0d958",
      "name": "便签6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        180,
        100
      ],
      "parameters": {
        "color": 3,
        "width": 220,
        "height": 240,
        "content": "## 货币"
      },
      "typeVersion": 1
    },
    {
      "id": "c90ab53c-8d8a-41b5-86e8-5136e81e6d96",
      "name": "设置货币",
      "type": "n8n-nodes-base.set",
      "position": [
        -80,
        0
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "b9f4869a-2059-4b09-84e3-26c7d1e95d30",
              "name": "currency",
              "type": "string",
              "value": "={{ $env.currency }}"
            },
            {
              "id": "593d886f-6c7b-4338-a057-46f2c57a041e",
              "name": "telegram_chat_id",
              "type": "string",
              "value": "={{ $env.telegram_chat_id }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "baa17bc3-0f3e-40a5-9488-41ec54f0291a",
      "name": "合并",
      "type": "n8n-nodes-base.merge",
      "position": [
        560,
        20
      ],
      "parameters": {
        "mode": "combine",
        "options": {},
        "combineBy": "combineByPosition"
      },
      "typeVersion": 3.2
    }
  ],
  "active": false,
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "a0a28bf8-c7c2-4b00-aef6-799c08e5301f",
  "connections": {
    "Merge": {
      "main": [
        [
          {
            "node": "Report: Prepare",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Fetch Price": {
      "main": [
        [
          {
            "node": "Merge",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Set Currency": {
      "main": [
        [
          {
            "node": "Fetch Price",
            "type": "main",
            "index": 0
          },
          {
            "node": "Convert Currency",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Report: Prepare": {
      "main": [
        [
          {
            "node": "Send a text message",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Convert Currency": {
      "main": [
        [
          {
            "node": "Merge",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "Schedule Trigger": {
      "main": [
        [
          {
            "node": "Set Currency",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
常见问题

如何使用这个工作流?

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

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

中级 - 加密货币交易

需要付费吗?

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

工作流信息
难度等级
中级
节点数量12
分类1
节点类型7
难度说明

适合有一定经验的用户,包含 6-15 个节点的中等复杂度工作流

外部链接
在 n8n.io 查看

分享此工作流