Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Telegram Channel Message Relay Bot

一个用Go编写的Telegram机器人,用于将消息从源频道复制到目标频道,并添加指向源频道评论区的内联按钮。

功能特性

  • ✅ 复制消息(非转发,不显示"Forwarded from")
  • ✅ 支持多种消息类型:文本、图片、视频、文档、音频、语音、动画、贴纸
  • ✅ 保留原始消息格式和实体(粗体、斜体、链接等)
  • ✅ 添加"💬 查看评论"按钮链接到源频道
  • ✅ 优雅关闭(Ctrl+C)

前置要求

  1. Go 1.21 或更高版本
  2. Telegram Bot Token(从 @BotFather 获取)
  3. Bot必须是源频道和目标频道的管理员
  4. 源频道需要开启评论功能(关联讨论组)

安装步骤

1. 克隆或下载项目

cd /path/to/XJB_relay

2. 安装依赖

go mod download

3. 配置环境变量

复制 .env.example.env

cp .env.example .env

编辑 .env 文件,填入你的配置:

BOT_TOKEN=123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11
SOURCE_CHANNEL_ID=-1001234567890
TARGET_CHANNEL_ID=-1009876543210
SOURCE_CHANNEL_USERNAME=mychannel

如何获取频道ID?

  1. 将bot添加到频道作为管理员
  2. 在频道发送一条消息
  3. 访问:https://api.telegram.org/bot<YOUR_BOT_TOKEN>/getUpdates
  4. 查找 "chat":{"id":-100xxxxxxxxxx} 中的ID

如何获取频道用户名?

  • 如果频道有公开链接 https://t.me/mychannel,用户名就是 mychannel
  • 如果是私有频道,需要先设置公开用户名

运行

方式1:直接运行(推荐)

set -a && source .env && set +a && go run main.go

方式2:编译后运行

go build -o tg-relay-bot main.go
set -a && source .env && set +a && ./tg-relay-bot

方式3:使用环境变量运行

BOT_TOKEN=xxx SOURCE_CHANNEL_ID=-100xxx TARGET_CHANNEL_ID=-100xxx SOURCE_CHANNEL_USERNAME=xxx go run main.go

注意:必须使用 set -a && source .env && set +a 来确保环境变量正确导出到子进程。

使用说明

  1. 启动bot后,它会监听源频道的新消息
  2. 每当源频道有新消息时,bot会自动复制到目标频道
  3. 复制的消息会附带一个"💬 查看评论"按钮
  4. 点击按钮会跳转到源频道的该条消息(可查看评论)

停止bot

Ctrl+C 优雅关闭bot。

支持的消息类型

  • ✅ 纯文本消息
  • ✅ 带格式的文本(粗体、斜体、链接等)
  • ✅ 图片(含标题)
  • ✅ 视频(含标题)
  • ✅ 文档(含标题)
  • ✅ 音频(含标题)
  • ✅ 语音消息
  • ✅ 动画/GIF
  • ✅ 贴纸

注意事项

  1. Bot必须在两个频道都有管理员权限
  2. Bot需要有发送消息的权限
  3. 只会复制bot启动后的新消息,不会复制历史消息
  4. 如果源频道没有公开用户名,评论按钮可能无法正常工作

故障排查

Bot无法启动

  • 检查 BOT_TOKEN 是否正确
  • 确认环境变量已正确加载

消息未被复制

  • 确认bot是源频道的管理员
  • 检查 SOURCE_CHANNEL_ID 是否正确(必须是负数)
  • 查看日志输出是否有错误信息

无法发送到目标频道

  • 确认bot是目标频道的管理员
  • 确认bot有发送消息的权限
  • 检查 TARGET_CHANNEL_ID 是否正确

评论按钮无法点击

  • 确认 SOURCE_CHANNEL_USERNAME 配置正确
  • 确认源频道有公开用户名
  • 确认源频道开启了评论功能

许可证

MIT License

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages