【问题标题】:Telegram bot: wait for a message in a channel, edit it, and redirect to another channelTelegram bot:等待频道中的消息,对其进行编辑,然后重定向到另一个频道
【发布时间】:2020-12-08 11:44:21
【问题描述】:

我需要使用 PHP 创建一个电报机器人,它可以获取到达包含我(但我不是管理员)的频道的每条消息。然后向我服务器上的一个页面发送一条消息:www.example.com/edit-message.php 以使用正则表达式和其他检查对其进行操作。 (我认为这个页面需要设置为 webhook?)。然后,修改后的消息会在自己的频道(我是管理员)中自动发送

我发现 PHP 的机器人教程很差,没有提到“从非我的频道自动获取消息”。

我也不明白它是如何工作的:如何在不每 X 秒轮询/检查状态的情况下检测来自(不是我的)频道的新消息!

谁能帮我理解我需要的步骤?不是代码,而是 PHP 中的一些提示或函数,如果它们已经存在于我的目标中。

实际上我正在使用商业机器人来完成这项工作,但我想创建自己的原因,这个使用的实际上并不便宜,而且我的追随者实际上并不多...... :(

【问题讨论】:

  • 您可以使用电报创建一个作为钩子工作的机器人。然后当事件发生时你的钩子会被调用。就这么简单。
  • @MarkusZeller 好的,但我的问题是:如何从不是我的频道“拦截”更新?我需要在 docs API 中搜索的功能是什么?我读过很多关于这个的失望......但我知道这可能是因为我正在使用的商业机器人这样做。
  • 一点也不。这称为安全性。机器人应该只在明确调用时做出反应。
  • @MarkusZeller 好的。那么,当这种类型的事件发生时(来自未拥有的频道的新消息),您能否向我发送一个起始文档以“唤醒”我的机器人
  • 你不能。这很好,因为任何受邀机器人都可以存储所有加密消息并将其公开。

标签: php bots telegram


【解决方案1】:

您可以使用Pyrogram。它是 Python 而不是 PHP,但它可以完全满足您的需求。

首先,配置您的会话并进行一些设置。之后,你需要这样的东西:

from pyrogram import Client
from pyrogram.handlers import MessageHandler


def my_function(client, message):
    # as_copy parameter for forward message without header
    message.forward("your_channel", as_copy=True)


app = Client("my_account")

my_handler = MessageHandler(my_function, filters.chat("channel_id"))
app.add_handler(my_handler)

app.run()

【讨论】:

    猜你喜欢
    • 2016-10-01
    • 1970-01-01
    • 2018-02-06
    • 2018-11-24
    • 2021-06-11
    • 1970-01-01
    • 2021-04-06
    • 2021-02-06
    • 1970-01-01
    相关资源
    最近更新 更多