跳到主要内容

常见问题

本页介绍 Telegram 节点的一些常见错误和问题,以及解决或排查步骤。

将机器人添加到 Telegram 频道 ​

机器人要向频道发送消息,必须先加入该频道。若尚未将机器人添加到频道中,你会看到描述类似于 Error: Forbidden: bot is not a participant of the channel 的错误。

按以下步骤将机器人添加到频道:

  1. 在 Telegram 应用中打开目标频道,然后选择频道名称。
  2. 如果要通过公开用户名访问频道,将其设为 public channel(公开频道);使用数字聊天 ID 访问私有频道时,无需将频道公开。
  3. 选择 Administrators(管理员)> Add Admin(添加管理员)。
  4. 搜索机器人的用户名并选中它。
  5. 选择右上角的勾选标记,将机器人添加到频道。

获取聊天 ID ​

@channelusername 形式适用于具有公开用户名的频道或超级群组。没有可用公开用户名的群组等聊天,需要使用其聊天 ID。

有三种方式可获取该 ID:

  1. 通过 Telegram Trigger:在工作流中使用 Telegram Trigger 节点获取聊天 ID。此节点支持多种触发事件,执行成功后会返回聊天 ID。
  2. 通过网页浏览器:在浏览器中打开 Telegram,再打开群聊。原文提供的查找方式是取字母“g”后的一串数字作为群组聊天 ID;在 n8n 中输入该 ID 时,在前面加上 -。
  3. 邀请 @RawDataBot 加入群组:添加后,该机器人会输出一个包含 chat 对象的 JSON 文件。该对象的 id 就是群组聊天 ID。获取后,将 RawDataBot 从群组中移除。

分批发送超过 30 条消息 ​

Telegram API 的普通批量发送速率限制约为每秒 30 条消息。要发送总计超过 30 条的消息,可按以下步骤分批并等待;这种做法用于遵守速率限制,并不能提高每秒速率上限:

  1. Loop Over Items node(循环处理项目节点):使用 Loop Over Items 节点,每批从数据库获取最多 30 个聊天 ID。
  2. Telegram node(Telegram 节点):将 Telegram 节点连接到 Loop Over Items 节点。使用 Expression Editor(表达式编辑器)选择 Loop Over Items 节点中的聊天 ID。
  3. Code node(代码节点):将 Code 节点连接到 Telegram 节点,使用 Code 节点等待几秒后再获取下一批聊天 ID,并将此节点连接回 Loop Over Items 节点。

也可以使用此工作流。

从已发送消息中移除 n8n 标识 ​

使用此节点发送 Telegram 消息时,消息末尾会自动附加以下 n8n 标识:

This message was sent automatically with n8n(此消息由 n8n 自动发送)

按以下步骤移除此标识:

  1. 在节点的 Additional Fields(附加字段)部分,选择 Add Field(添加字段)。
  2. 选择 Append n8n attribution(附加 n8n 标识)。
  3. 关闭该开关。

更多信息,请参阅 Send Message 附加字段。

本文为社区中文翻译。查看对应英文原文