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

时间:2017-02-24 03:29:39

标签: telegram telegram-bot python-telegram-bot

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

格式发送短信
  • “buy usdjpy sl 145.2 tp 167.4”
  • “eurusd sell sl 145.2 tp 167.4”
  • “eurusd sl 145.2 tp 167.4 SELL”

或某些顺序的这些单词

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

电报api允许吗?

8 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:2)

为了能够从Telegram频道中刮除您不拥有的消息,您需要开发自己的具有以下功能的Telegram客户端:

  1. 通过链接加入所需的频道
  2. 将邮件转发到您的客户订阅的频道,并转发到您自己的电报频道

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

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

一些记录良好的实现示例:


但是,如果您唯一想做的就是从现有Telegram频道到您自己的频道进行多次重定向,那么开发自己的解决方案可能就太过分了。

有些应用程序提供了这样的服务。

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

该机器人具有灵活的过滤系统,因此设置过滤器以跳过某些类型的消息(广告,媒体内容等)并仅将要查看的消息留在目标频道中应该非常容易。

答案 2 :(得分:1)

使用Full Telegram API非常容易。

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

只需要这一切。

答案 3 :(得分:1)

这是你在寻找什么? telegram-forward-bot

在自述文件中:

  

简单电报机器人可以在各种相关频道和群组之间轻松转发消息。

     

此机器人允许您在不同频道之间自动转发消息。我们在学生委员会使用它,因为我们正在为每个委员会提供15个不同的电报组。然后,如果我们想要一些佣金收到一些重要信息,我们可以在消息开始时(或媒体文件的标题)使用主题标签自动转发给他们。

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

答案 4 :(得分:1)

我用TdLib解决了类似的问题。他们的GitHub网站拥有完整的C ++,Java和C#示例,您可以对其进行修改。

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

如果您不确定从哪里开始,请在上述方法中的每个case语句中添加简单的System.out.println语句(如果使用Java),并确保您阅读了{{3} }。

对于其他许多语言(包括starting guide),它们实际上具有examples,但是从我的角度来看,它们不如我之前提到的三种语言完整。

答案 5 :(得分:1)

我使用printf("%s\n", __Time__); python模块编写了一个简单的python代码。 代码的基本作用是通过 client api 电报从各种电报渠道转发消息到您选择的渠道。您可以找到它here

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

telethon模块使过滤想要阅读的邮件变得容易。随意分叉项目并进行所需的更改。您应该查看模块文档here

答案 6 :(得分:1)

取决于要使用的语言,可以使用许多库来完成工作。

以python为例,您可以使用诸如Telethon(针对用户或机器人)或“ python telegram bot”之类的库。

两个库都对它们的工作非常出色。 Telethon是异步的,所以我更倾向于它。

要执行所需的操作,您需要捕获event.Message并使用python regex 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

机器人。

这是一个机器人,用于将消息从一个/多个组转发到其他组。它的工作方式是使用您的电报帐户,并且在收到消息时(如果已配置),它将看到该消息并将其重写为所需的频道。您可以编辑消息的外观,过滤,延迟和更改单词。

这是一个自动化Telegram User API的免费解决方案,它与documentation一起使用界面简单

如果您热衷于学习,那么我建议您加入电报组,例如Telethon>>> telegram.Bot()

答案 7 :(得分:0)

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