1

我使用最新的 Telethon 框架。这实现了电报 API 的包装器。我想从频道中获取信息(标题、关于、参与者计数)和一些最近的消息,这些消息是从该消息转发给我的。怎么能做到这一点?

4

1 回答 1

0

我编写了这段代码并使用 ‍‍<code>1.0.4 版本对其进行了测试:

from telethon import TelegramClient, sync
from telethon.tl.functions.messages import GetHistoryRequest

api_id = XXXXXX
api_hash = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'
phone_number = '+9893XXXXXX'
################################################
channel_username = 'test_ali3'
################################################

client = TelegramClient('session_name',
                    api_id,
                    api_hash, 
                    )
client.connect()
if not client.is_user_authorized():
    client.send_code_request(phone_number)
    me = client.sign_in(phone_number, input('Enter code: '))


channel_entity = client.get_entity(channel_username)

posts = client(GetHistoryRequest(
    peer=channel_entity,
    limit=1,
    offset_date=None,
    offset_id=0,
    max_id=0,
    min_id=0,
    add_offset=0,
    hash=0))

for post in posts.messages:
    print(post)

您可以在 ‍<strong>Chat 部分中查看转发消息的所有渠道的列表。(你可以得到title, username, channel_id, photo在此处输入图像描述

在此处输入图像描述

如果您想要更多信息(例如aboutparticipants_count),您可以GetFullChannelRequest在您的代码中使用:

例如 :

more_info1=client(GetFullChannelRequest(posts.chats[1]))

在此处输入图像描述

于 2018-08-22T19:07:49.940 回答