我在一个私人的Telegram小组中,该小组连续不断地收到来自许多人的许多消息。我需要以某种方式只从少数几个特定的人中抽出他们,然后以某种方式将其转发给自己-例如我是新群组的唯一成员,或者是私人聊天,或者其他某种方式(通过电子邮件发送)。我只需要阅读它们,而不是答复。
我是一名全栈开发人员(PHP后端,但愿意考虑其他人是否可以更好地工作),并且知道如何与API等接口,因此可以编写一些代码来做到这一点。
任何人都可以就我将使用的API函数或此处的其他方法提出建议-它是Telegram还是Bots API?还是那里已有解决方案?
在这里做我自己的研究,没有找到任何解决方案!
答案 0 :(得分:0)
您可以创建一个漫游器并将其放入私有组。将机器人设置为管理员,以便它可以读取所有用户的所有消息。对于用户在组中发送的每条消息,该漫游器都将接收包含一个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_id
,first_name
或last_name
个用户,而不用比较username
来过滤用户,但是只有user_id
是唯一的每个用户,并且不能更改。
您正在使用forwardMessage。