如何重定向来自特定格式的电报频道的消息?[电报机器人]

How can I redirect messages from telegram channels that are in certain format?[telegram bot]

我有很多电报频道,24 他们以

格式发送消息

或这些词按某种顺序排列

我的想法是创建一个应用程序来检查每个频道的消息,如果是上述格式,则将其重定向到我的频道。

电报 api 允许吗?

使用 Full Telegram API。

很容易做到这一点
  • 首先在您的手机上phone订阅所有感兴趣的频道
  • 接下来您将开发一个简单的电报客户端,用于接收来自这些频道的所有更新
  • 接下来构建一些可以理解频道消息并过滤出您感兴趣的内容的解析器
  • 最后您将过滤后的内容(重新格式化)发送到您自己的频道。

仅此而已。

您不能使用机器人从电报频道中抓取,除非,机器人是频道中的管理员,只有所有者可以添加。

完成后,您可以通过侦听 channel_post 更新轻松地将帖子重定向到您的频道。

这是您要找的吗? telegram-forward-bot

自述文件中:

Simple Telegram Bot for forwarding messages easily between various related channels and groups.

This bot allows you to automatically forward messages between different channels. We use it on our Student Comitee because we have like 15 different Telegram groups for each commission we are working on. Then, if we want some commission receives some important information, we can automatically forward to them using hashtags at the beggining of the message (or the caption of a media file).

我想我知道你的感受,我是交易员,我关注各种预测渠道。但并非所有信息都是有用的(有时是广告)。希望这对你有用:)

为了能够从 Telegram 频道 中抓取 你不拥有 的消息,你需要开发你自己的 Telegram 客户端能够:

  1. 通过链接加入您想要的频道
  2. 转发消息,到达您的客户订阅的频道,到您自己的 Telegram 频道

为了开发自己的 Telegram 客户端,您需要使用 MTProto 的一些实现。

您可以使用 mtproto 关键字在 https://github.com 上找到很多 MTProto 的实现。

几个有据可查的实施示例:


但是,如果您唯一想要的是从现有 Telegram 频道到您自己的频道的多个重定向,那么开发您自己的解决方案可能会有点矫枉过正。

有提供此类服务的应用程序。

例如,MultiFeed Bot 允许您设置将消息从任何 Telegram 频道转发到您自己的 Telegram 频道。

这个 bot 有一个灵活的过滤系统,所以应该很容易设置过滤器来跳过某些类型的消息(广告、媒体内容等)并只留下你想在目的地看到的那些消息频道。

我用 TdLib. Their GitHub site has full C++, Java 和 C# 示例解决了一个类似的问题,您只需修改即可。

我处理了 Java 示例,并将我的大部分更改应用于 UpdatesHandler.onResult 方法(第 353 行)。 C++ 和 C# 示例具有相似的结构。只要有任何事件发生,Td 就会调用此方法。因此,您可以在那里拦截它们。

如果您不确定从哪里开始,请先向上述方法中的每个案例语句添加简单的 System.out.println 语句(如果使用 Java),并确保您阅读 starting guide.

它们实际上包含 examples for many other languages (Python),但从我的角度来看,它们不如我之前提到的三个完整。

我使用 telethon python 模块编写了一个简单的 python 代码。 代码的基本作用是通过电报 客户端 api 将来自各种电报频道的消息转发到您选择的频道。你可以找到它 here.

使用客户端 api,可以从您的用户所属的组和频道中读取消息。不需要机器人。

telethon 模块可以轻松过滤您想要阅读的消息。随意分叉项目并进行所需的更改。您应该查看模块文档 here.

找到了这个问题的解决方案。 这是一个自动将消息从一个频道转发到另一个频道的机器人,无需转发标签。 而且复制速度是合法的! @copythatbot 这是每个人都在寻找的黄金工具。

根据您要使用的语言,您可以使用许多库来完成工作。

让我们举个例子 python,你可以使用诸如 Telethon(对于用户或机器人)或“python telegram bot”之类的库。

两个图书馆的工作都很棒。 Telethon 是异步的,所以我更倾向于它。

要执行您要查找的内容,您需要捕获 event.Message 并使用 python 正则表达式 re 模块来匹配消息中的模式。

这是您要使用的代码 Telethon:

import re
from telethon import TelegramClient, sync, events

# These example values won't work. You must get your own api_id and
# api_hash from https://my.telegram.org, under API Development.
api_id = 12345
api_hash = '0123456789abcdef0123456789abcdef'

client = TelegramClient('session_name', api_id, api_hash).start()


@client.on(events.NewMessage(chats=('TelethonChat', 'TelethonOffTopic')))
async def message_regex(event):
    pattern = re.compile(".*145\.2 tp 167\.4.*", re.M)
    raw_text = event.raw_text

    if pattern.match(raw_text, raw_text):
        ## Pattern matched do something
        pass

您只需更改 api 键,它应该可以正常工作。现在要添加其他内容,您将需要有关编程和 python.

的知识

如果您正在寻找一个简单的解决方案,您可以随时使用我制作的这个机器人 @tg_feedbot

这是一个用于将消息从 one/multiple 组转发给其他人的机器人。它的工作方式是使用您的电报帐户,当消息到来时 - 如果您已经配置它 - 它会看到它并将其重写到您想要的频道。您可以编辑消息的外观、过滤消息、延迟和更改文字。

这是一个用于自动化 Telegram User API 的免费解决方案,它具有简单易用的界面以及 documentation

如果你热衷于自学,那么我建议你加入 Telegram 组,例如 Telethon>>> telegram.Bot()