【问题标题】:@client.on(events.NewMessage not working :(@client.on(events.NewMessage 不工作:(
【发布时间】:2021-11-02 22:41:47
【问题描述】:

我试图编写一个在另一个机器人上发送垃圾邮件的机器人,我尝试阅读文档,但它不起作用:/这是我与用户配对时收到的消息:


???? Sei stato inserito in chat un utente!

????达蒂·戴尔'UTENTE

?????????? Scrivigli subito un messaggio

按钮 1

按钮 2


我需要用我在输入中输入的消息和一两秒后的另一个消息来响应此文本,但代码只是停止并且甚至没有响应。这是代码:

import asyncio 
from telethon.sync import TelegramClient
from telethon import TelegramClient, events, sync
from telethon.errors.rpcerrorlist import PeerFloodError
from telethon.tl.types import InputPeerUser
import time

api_id = xxx
api_hash = 'xxx'
messaggio = input("inserisci messaggio: ")
comando = input("inserisci comando: ")
client = TelegramClient('session_name', api_id, api_hash)
client.start()

time.sleep(5)


@client.on(events.NewMessage(from_users=<botname>, pattern='???? Sei stato inserito in chat con un utente!.+'))
async def handler(event):
    await event.respond("messaggio")
    time.sleep(5)
    await event.respond("comando")
    time.sleep(10)

【问题讨论】:

    标签: telegram telethon


    【解决方案1】:

    这里有一些问题。 首先,不推荐使用time.sleep()asyncio。然后,客户端没有运行,所以你需要运行它。

    你可以这样做:

    import asyncio 
    from telethon.sync import TelegramClient
    from telethon import TelegramClient, events, sync
    from telethon.errors.rpcerrorlist import PeerFloodError
    from telethon.tl.types import InputPeerUser
    import time
    
    api_id = 123456
    api_hash = "gwudshojia24153124321"
    messaggio = input("inserisci messaggio: ")
    comando = input("inserisci comando: ")
    client = TelegramClient('session_name', api_id, api_hash)
    client.start()
    
    @client.on(events.NewMessage(from_users=<bot_name>, pattern='? Sei stato inserito in chat con un utente!.+'))
    async def handler(event):
        await event.respond(messaggio)
        await asyncio.sleep(5)
        await event.respond(comando)
        await asyncio.sleep(10)
    
    client.run_until_disconnected()
    

    【讨论】:

    • mhh 好的,解决了它,但是当我收到来自 bot 的消息时,它仍然没有回复它,完整的消息是:? Sei stato inserito in chat con un utente! ? DATI DELL'UTENTE ?? Scrivigli subito un messaggio button 1 button 2 据我了解,模式应该看到一条消息并回复一条带有确切文本和“.+”其他内容的消息。有什么方法可以帮助我吗?
    • 如果您需要回复该消息,请将event.respond 替换为event.reply
    • 我的意思是,它没有输入任何内容,也许我收到的消息有问题?
    • 如果机器人没有处理该消息,则该模式可能有问题。我建议您检查消息是否以该模式开头(请参阅:regexone.com/lesson/line_beginning_end),以便您确定机器人会处理该消息。
    • 这并没有太大帮助,但我修复了它,谢谢顺便说一句,我创建了一个名为“messaggio_bot”的 str 并在 chat con un utente 中更改了 pattern='? Sei stato inserito!.+'))在@client.on(events.NewMessage(chats="", pattern=messaggio_bot))
    猜你喜欢
    • 2020-03-30
    • 2018-06-15
    • 2021-10-18
    • 2021-11-12
    • 2022-07-28
    • 2021-12-03
    • 2021-01-21
    • 2021-06-10
    • 1970-01-01
    相关资源
    最近更新 更多