许多用户希望将 Twitter 上的特定账号动态、关键词搜索结果或热门趋势,自动转发到 Telegram 群组或频道中,以便及时获取信息。然而,由于 Twitter API 政策变化、机器人搭建门槛较高以及 Telegram Bot 配置复杂,新手常常在“如何创建 Bot”、“如何获取 Twitter 数据”、“如何让两者联动”等环节卡住。本文将手把手教你从注册 Telegram Bot 到配置 Twitter 推送的全流程,覆盖常见报错与替代方案。

准备条件:注册 Telegram Bot 并获取 Token

在开始任何联动操作前,你需要先拥有一个 Telegram Bot 的身份凭证。这是所有消息推送的基础。

具体操作说明:

1. 打开 Telegram,搜索 @BotFather(官方机器人管理账号),点击进入并发送 /start

2. 发送 /newbot命令,按照提示依次输入你想要的机器人名称(如 MyTwitterBot)和用户名(必须以 _bot结尾,例如 MyTwitterPushBot)。

3. 创建成功后,BotFather 会返回一段 API Token,格式类似 123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11请立即复制并保存到安全位置,后续所有配置都需要用到此 Token。

注意事项/小提示:

  • 用户名一旦设定无法修改,请谨慎命名。
  • Token 是机器人的唯一密钥,切勿公开分享,否则他人可控制你的机器人。
  • 如果你需要将消息推送到群组,需先创建群组并将该 Bot 添加为群组成员,并授予“发送消息”权限。

备用方案:

  • 如果 BotFather 无法访问,请检查你的 Telegram 网络是否正常,尝试更换代理节点。
  • 若忘记 Token,可重新进入 BotFather,发送 /mybots,选择你的机器人,点击 API Token即可查看或重置。

核心操作:选择并部署 Twitter 推送工具

Telegram Bot 本身不直接抓取 Twitter 数据,你需要借助第三方工具或脚本。这里推荐使用开源项目 tweet-to-telegram(基于 Python)或在线服务 tweet2telegram。以下以 Python 脚本为例,适合有一定基础的用户。

具体操作说明:

1. 在你的服务器或电脑上安装 Python 3.8 以上版本,并安装依赖库:在命令行执行 pip install tweepy python-telegram-bot requests

2. 前往 [Twitter Developer Portal](https://developer.twitter.com) 申请一个 Elevated级别的 API 账号(免费版仅支持只读,需升级)。创建项目后,获取 API KeyAPI SecretAccess TokenAccess Token Secret

3. 下载或克隆 tweet-to-telegram项目源码,编辑配置文件 config.py,填入以下内容:

- TELEGRAM_TOKEN:上一步获取的 Bot Token。

- TELEGRAM_CHAT_ID:目标接收消息的群组或频道 ID(可通过 @userinfobot 获取)。

- TWITTER_CONSUMER_KEY等四个 Twitter API 凭证。

- TWITTER_ACCOUNTS:要监控的 Twitter 用户名列表(如 ["elonmusk", "BBCNews"])。

4. 运行脚本:python main.py,观察控制台是否输出“Bot is running”以及抓取到的推文信息。

注意事项/小提示:

  • Twitter API 免费版有每小时请求次数限制(约 300 次/15 分钟),监控多个账号时请合理设置轮询间隔(建议 5 分钟以上)。
  • 如果使用在线服务(如 tweet2telegram网站),通常只需填入 Bot Token、Chat ID 和 Twitter 用户名即可,无需编程,但需要信任第三方平台的安全性。
  • 确保服务器或电脑保持开机状态,否则机器人会停止运行。推荐使用云服务器或长期运行的 VPS。

备用方案:

  • 如果 Python 脚本报错 tweepy版本不兼容,请使用 pip install tweepy==4.14.0降级。
  • 若不想自己部署,可使用 IFTTTZapier这类自动化工具,创建“Twitter 新推文 → Telegram 消息”的 Applet,但免费版有触发次数限制。

验证结果:测试消息推送是否成功

配置完成后,必须进行实际测试,确保从 Twitter 抓取到的新推文能正确发送到 Telegram。

具体操作说明:

1. 在监控的 Twitter 账号中发布一条测试推文(或等待其自动更新),内容建议包含明显标识,如“Test tweet for bot”。

2. 观察运行脚本的终端窗口,查看是否出现类似 New tweet from @username: ...的日志。

3. 打开 Telegram 目标群组或频道,检查是否收到了包含该推文文本、链接或图片的消息。如果设置的是频道,请确保 Bot 是频道管理员且有“发送消息”权限。

4. 如果一切正常,你会看到推文以 Telegram 消息形式呈现,通常包括作者头像、用户名、推文内容和发布时间。

注意事项/小提示:

  • 如果测试推文已经发布过,机器人可能不会重复推送。建议用新账号或新内容测试。
  • 部分服务只推送纯文本,不包含图片或视频。如需多媒体内容,请确认工具是否支持。
  • 推送延迟通常在 1-5 分钟内,取决于轮询间隔设置。

备用方案:

  • 若未收到消息,手动在 Telegram 中向你的 Bot 发送任意文字(如 /start),看是否有回复。无回复则说明 Token 或网络有问题。
  • 检查 Twitter API 凭证是否具有读取推文的权限,可在 Twitter Developer Portal 的“Keys and tokens”页面验证。

备用处理:常见报错与故障排除

即便配置正确,也可能因网络、API 限制或代码问题导致推送失败。以下为最典型的故障及解决方案。

具体操作说明:

1. 错误:HTTP 429 Too Many Requests:表示 Twitter API 请求频率超限。解决方案:增加脚本中的轮询间隔时间(如从 30 秒改为 120 秒),或减少监控的账号数量。

2. 错误:Telegram API returns 403 Forbidden:Bot 没有权限向该聊天发送消息。检查 Bot 是否被踢出群组,或群组设置了“仅管理员可发消息”。将 Bot 提升为管理员即可。

3. 错误:ModuleNotFoundError: No module named 'tweepy':Python 依赖未安装。重新执行 pip install tweepy,注意使用与 Python 版本匹配的 pip 命令(如 pip3)。

4. 问题:推文抓取正常但 Telegram 不显示:检查 TELEGRAM_CHAT_ID是否为负数(群组 ID 通常以 -100开头,频道 ID 以 -100开头且包含数字)。可使用 @getidsbot 获取准确的 ID。

5. 问题:只推送了第一条推文,后续无更新:脚本可能只抓取了历史推文,未进入持续监听模式。确认代码中是否包含 while True循环或定时任务(如 schedule库)。

注意事项/小提示:

  • 如果使用在线服务,故障通常由服务方维护导致,可查看其状态页面或联系客服。
  • 建议在脚本中加入日志记录功能,方便定位问题:logging.basicConfig(level=logging.INFO)
  • 定期检查 Twitter API 的“项目”状态,免费版可能因长期未使用而被降级。

备用方案:

  • 如果以上均无法解决,考虑更换工具。例如使用 n8nNode-RED可视化搭建流程,无需编写代码。
  • 对于非技术用户,直接使用 Telegram 的 RSS 订阅机器人(如 @rss2tg_bot),通过 Twitter RSS 源间接实现推送(需第三方 RSS 生成服务)。

常见问题补充

问:我可以监控 Twitter 搜索关键词吗?

答:可以。在脚本中修改 API 调用方式,使用 tweepy.Cursor(api.search_tweets, q="关键词")即可。但注意免费 API 对搜索有严格限制,建议使用付费版或降低频率。

问:如何让 Bot 只推送特定用户的推文,且不包含转推?

答:在抓取逻辑中过滤 tweet.retweetedtweet.is_quote_status字段。例如 Python 代码中加 if not hasattr(tweet, 'retweeted_status')

问:推送的消息可以包含图片或视频吗?

答:多数工具支持。需要获取推文中的媒体 URL(tweet.entities['media']),然后通过 Telegram Bot API 的 sendPhotosendVideo方法发送。请确认你使用的脚本或服务已实现该功能。

问:我的 Bot 突然停止工作了,怎么办?

答:首先检查服务器网络和电源,然后查看运行日志。常见原因包括:Twitter API 凭证过期、Telegram Token 被重置、脚本因异常崩溃。重启脚本并检查错误输出。

总结:

搭建 Twitter Telegram Bot 的核心在于获取正确的 API 凭证、选择适合的工具并严格测试推送链路,遇到报错时优先检查权限与频率限制,即可实现稳定的消息自动转发。