You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Telethon调用send_message出现coroutine未await的RuntimeWarning如何解决

报错原因

client.send_message是Telethon提供的异步协程方法,必须搭配await关键字等待执行,直接同步调用会抛出coroutine was never awaited的运行时警告,方法也不会实际执行。

修正方案

调整代码的异步执行逻辑,修改内容如下:

  • 将原同步main函数改为异步函数,添加async关键字
  • 调用client.start()、client.send_message()、client.run_until_disconnected()等异步方法时,前面添加await关键字
  • 用asyncio.run()启动异步主函数
完整可运行代码
import random
import asyncio
from telethon import TelegramClient, events


async def main():
    api_id = 9123640
    api_hash = '8as6fgvs8t9ar76fse89rgearz'
    chat = '@username'
    message = 'hi'

    client = TelegramClient('afewfe', api_id, api_hash)

    @client.on(events.NewMessage(chats=chat))
    async def normal_handler(event):
        if event.message.button_count == 4:
            await event.message.click(random.randint(0, 3))
            await client.disconnect()

    await client.start()
    await client.send_message(chat, message)
    await client.run_until_disconnected()


if __name__ == '__main__':
    asyncio.run(main())

兼容说明

如果你使用的Python版本低于3.7,asyncio.run()不可用,可以将最后一行替换为:

client.loop.run_until_complete(main())

内容的提问来源于stack exchange,提问作者fgrd4035

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 15:45:03