Ale*_*eiw 4 python protocols websocket telegram
我想连接到电报的 WebSocket 或其他协议,以接收每条消息。我正在检查开发工具中的网络选项卡,但找不到任何 WebSocket 协议,但是,当我进入控制台时,我可以看到[SW] on message {type: "ping", localNotifications: true, lang: {\xe2\x80\xa6}, settings: {\xe2\x80\xa6}}这让我相信,它是为了保持与 WebSocket 的连接而发送的。我尝试了 telethonpython 库,但它只允许我显示聊天中的所有消息。
from telethon import TelegramClient\nimport asyncio\nclient = TelegramClient(name, api_id, api_hash)\nclient.start()\nfor i in client.iter_dialogs():\n if i.name == 'test':\n chj = i\nasync def main():\n\n channel = await client.get_entity(chj)\n messages = await client.get_messages(channel, limit= None) #pass your own args\n\n #then if you want to get all the messages text\n for x in messages:\n print(x) #return message.text\n\n"""for i in client.iter_dialogs():\n print(i)"""\nloop = asyncio.get_event_loop()\nloop.run_until_complete(main())\nRun Code Online (Sandbox Code Playgroud)\n我希望每当在所需的聊天中某人输入某些内容时都能收到像 WebSocket 中那样的消息
\n我找到了答案。events这可以使用来自telethon库来实现
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()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4001 次 |
| 最近记录: |