深入探索 n8n Telegram Bot 消息发送技巧

n8n 是一个强大的工作流自动化工具,允许您连接不同的应用程序和服务,创建复杂的自动化流程。结合 Telegram Bot API,n8n 可以实现各种灵活和自动化的 Telegram 消息发送功能。本指南将深入探讨在 n8n 中使用 Telegram Bot 发送消息的各种“玩法”。

核心组件:n8n 中的 Telegram 节点

在 n8n 中与 Telegram 交互主要通过 Telegram 节点。要发送消息,您通常会使用其 "Send Message" 或类似的发送操作(如 Send Photo, Send Document 等)。

基础消息类型与发送

n8n 的 Telegram 节点提供了发送多种基础消息类型的功能。

1. 文本消息 (Text)

最常见的消息类型。在 n8n 节点中:

2. 图片 (Photo)

3. 音频 (Audio), 文档 (Document), 视频 (Video), 语音 (Voice)

这些类型的发送方式与图片类似:

交互式消息与键盘

通过键盘可以极大增强 Bot 的交互性。

1. 内联键盘 (Inline Keyboard)

按钮会直接显示在消息下方,点击后可以发送回调数据 (Callback Data) 或打开 URL。

2. 回复键盘 (Reply Keyboard)

替换用户输入框下方的标准键盘,提供预设的回复选项。

3. 移除键盘 (Remove Keyboard)

发送一条消息并移除当前的自定义回复键盘,恢复到标准键盘。

4. 强制回复 (Force Reply)

强制用户回复这条消息(用户会看到一个回复图标)。

消息格式化 (Parse Mode)

如前所述,Parse Mode 是控制消息外观的关键。

1. MarkdownV2

使用 MarkdownV2 语法。注意:_, *, [, ], (, ), ~, `, >, #, +, -, =, |, {, }, ., ! 这些字符必须转义 (在前面加 \),除非它们用于构成 Markdown 实体。


*粗体*
_斜体_
__下划线__ (n8n中可能不直接支持,Telegram支持)
~删除线~
||剧透内容||
`行内代码`
[内联URL](http://www.example.com/)
[内联提及用户](tg://user?id=123456789)
```python
# 预格式化代码块
print("Hello, Telegram!")
```
        

2. HTML

支持部分 HTML 标签:


<b>粗体</b>, <strong>粗体</strong>
<i>斜体</i>, <em>斜体</em>
<u>下划线</u>, <ins>下划线</ins> (n8n中可能不直接支持,Telegram支持)
<s>删除线</s>, <strike>删除线</strike>, <del>删除线</del>
<tg-spoiler>剧透内容</tg-spoiler>
<a href="http://www.example.com/">内联URL</a>
<a href="tg://user?id=123456789">内联提及用户</a>
<code>行内代码</code>
<pre>预格式化文本块</pre>
<pre><code class="language-python"># 预格式化代码块
print("Hello, Telegram!")</code></pre>
        

提示: 在 n8n 表达式中使用 Markdown 或 HTML 时,如果内容包含特殊字符,务必正确处理转义,否则可能导致发送失败或格式错误。

高级发送选项

Telegram 节点通常在 "Additional Fields""Options" 部分提供更多控制参数:

其他消息类型玩法

除了基础类型,n8n 的 Telegram 节点通常也支持发送其他特殊类型的消息,具体参数可能在 "Resource" 和 "Operation" 中选择,或通过 "Additional Fields" 配置。

n8n 工作流中的 Telegram 应用场景

n8n 的强大之处在于构建完整的工作流,Telegram 消息发送是其中的一个环节。

图表加载中...

n8n Telegram 节点参数示例 (发送内联键盘)

这是一个 n8n 工作流中 Telegram 节点参数的 JSON 结构简化示例,展示了如何配置发送带有内联键盘的消息:


{
  "parameters": {
    "chatId": "{{ $json.chatId }}", // 或直接填写 Chat ID
    "text": "请选择一个操作:",
    "additionalFields": {
      "reply_markup": { // 注意:实际n8n界面可能直接提供Inline Keyboard的UI配置
        "inline_keyboard": [
          [
            { "text": "操作 A", "callback_data": "action_a" },
            { "text": "操作 B", "callback_data": "action_b" }
          ],
          [
            { "text": "访问 n8n 官网", "url": "https://n8n.io" }
          ]
        ]
      }
    }
  },
  "name": "Send Interactive Message",
  "type": "n8n-nodes-base.telegram", // 节点类型可能随版本变化
  "typeVersion": 1,
  "credentials": {
    "telegramApi": { // 引用您配置的Telegram凭证
      "id": "YOUR_CREDENTIAL_ID",
      "name": "My Telegram Bot Credentials"
    }
  }
}
        

实际操作提示: 在 n8n 的图形化界面中,您通常不需要直接编辑 JSON。对于内联键盘、回复键盘等,n8n 节点会提供专门的 UI 字段来帮助您构建这些结构,例如 "Reply Markup" > "Add Inline Keyboard Row" > "Add Button"。

消息管理

除了发送新消息,Telegram API 也允许对已发送的消息进行管理,n8n 的 Telegram 节点通常也支持这些操作,例如:

这些操作通常在 n8n Telegram 节点的 "Operation" 字段中选择,然后填写必要的参数。

重要注意事项

数学公式示例 (MathJax)

为了满足格式要求,这里展示一个 MathJax 渲染的数学公式(与 Telegram 主题无直接关联):

$$ e^{i\pi} + 1 = 0 $$

通过组合 n8n 强大的工作流引擎和 Telegram Bot 灵活的消息功能,您可以创造出各种实用且富有创意的自动化解决方案。不断尝试和探索,发挥您的想象力吧!