如何根据发件人从私人组向我转发过滤电报消息?

问题描述

我在一个私人的Telegram小组中,该小组连续不断地收到来自许多人的许多消息。我需要以某种方式只从少数几个特定的​​人中抽出他们,然后以某种方式将其转发给自己-例如我是新群组的唯一成员,或者是私人聊天,或者其他某种方式(通过电子邮件发送)。我只需要阅读它们,而不是答复。

我是一名全栈开发人员(PHP后端,但愿意考虑其他人是否可以更好地工作),并且知道如何与API等接口,因此可以编写一些代码来做到这一点。

任何人都可以就我将使用的API函数或此处的其他方法提出建议-它是Telegram还是Bots API?还是那里已有解决方案?

在这里做我自己的研究,没有找到任何解决方案!

解决方法

您可以创建一个漫游器并将其放入私有组。将机器人设置为管理员,以便它可以读取所有用户的所有消息。对于用户在组中发送的每条消息,该漫游器都将接收包含一个update对象的message。消息对象包含有关组中刚发送的消息的所有信息,包括用户的数据。要过滤来自特定用户的邮件,您可以将user_id中的$update['message']['from']['id']与包含要转发其邮件给您的所有user_id用户的数组进行比较,{ {3}} php函数传递user_id和数组。然后,如果匹配,请对这些参数使用in_array方法:

{
  "chat_id": "YOUR_USER_ID","from_chat_id": "PRIVATE_GROUP_CHAT_ID","message_id": "THE_FILTERED_MESSAGE_ID"
}

如果您在user_id字段中使用chat_id,则漫游器会将邮件从私人群组转发到您的聊天室。 from_chat_id字段是私有组的chat_id(您可以从$update['message']['chat']['id']获取)。 message_id是该专用组中邮件的唯一标识符。它包含在$update['message']['message_id']中。

您可以比较user_idfirst_namelast_name个用户,而不用比较username来过滤用户,但是只有user_id是唯一的每个用户,并且不能更改。


您正在使用forwardMessage