gpt4 book ai didi

telegram - 如何使用非 Telegram 事件触发器发送 Telegram 消息

转载 作者:行者123 更新时间:2023-12-03 17:14:15 30 4
gpt4 key购买 nike

当我从按钮获得触发器时,我正在尝试使用 Telethon 发送 Telegram 消息。
当由 NewMessage 事件等事件触发时,我的 Telethon 方法工作正常,但是如何使用其他触发器(即按下按钮,telethon 发送消息)发送消息( client.send_message(user, msg) )?
目前我得到的只是这些错误:

RuntimeError: There is no current event loop in thread 'Thread-1'.
RuntimeWarning: coroutine 'send_to' was never awaited
这是我的代码的简化版本:
    with client:
client.start()
while True:
if (button):
await client.send_message(int(chat),msg)
client.run_until_disconnected()
编辑:
事后看来,我原来的实际问题过于简单化了。我没有使用按钮,而是使用语音命令,无论哪种方式,非 Telegram 触发器。在 Telegram 聊天组 @TelethonChat 的帮助下,答案是使用:
    import asyncio

loop = asyncio.new_event_loop()

async def send_to(chat, msg):
await client.send_message(chat, msg)

def mainfunc():
if (trigger):
loop.create_task(send_to(chat, msg))

最佳答案

您需要使用事件来做到这一点。单击按钮的事件是 events.CallbackQuery link is here
示例代码如下:

from telethon import events
from telethon.tl.custom import Button

@client.on(events.CallbackQuery)
async def handler(event):
await event.answer('You clicked {}!'.format(event.data))

client.send_message(chat, 'Pick one', buttons=[
[Button.inline('Left'), Button.inline('Right')]]
])
您可以在此处找到更多示例: https://telethon.readthedocs.io/en/latest/extra/examples/telegram-client.html

关于telegram - 如何使用非 Telegram 事件触发器发送 Telegram 消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54870101/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com