我想连接到 Telegram 的 WebSocket 或其他协议(protocol),以接收每条消息。我正在检查开发工具中的网络选项卡,但我找不到任何 WebSocket 协议(protocol),但是,当我进入控制台时,我可以看到 [SW] on message {type: "ping", localNotifications: true, lang: {…}, settings: {…}}
这让我相信,发送它是为了保持与 WebSocket 的连接。我尝试了 telethon
python 库,但它只允许我在聊天中显示所有消息。
from telethon import TelegramClient
import asyncio
client = TelegramClient(name, api_id, api_hash)
client.start()
for i in client.iter_dialogs():
if i.name == 'test':
chj = i
async def main():
channel = await client.get_entity(chj)
messages = await client.get_messages(channel, limit= None) #pass your own args
#then if you want to get all the messages text
for x in messages:
print(x) #return message.text
"""for i in client.iter_dialogs():
print(i)"""
loop = asyncio.get_event_loop()
loop.run_until_complete(main())
我希望在所需的聊天中每当有人输入某些内容时,就像在 WebSocket 中一样获取消息
最佳答案
我找到了答案。这可以使用 telethon
库中的 events
来实现
from telethon import TelegramClient, events
name = 'test'
api_id = 1234
api_hash = 'hash'
client = TelegramClient(name, api_id, api_hash)
@client.on(events.NewMessage())
async def newMessageListener(event):
newMessage = event.message.message
print(newMessage)
with client:
client.run_until_disconnected()
关于python - Telegram 的 websocket,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66225422/