获取从中转发消息的渠道

时间:2018-08-14 06:15:27

标签: python-3.6 telegram telethon

我使用最新的telethon框架。这实现了电报API的包装器。 我想从频道中获取信息(标题,关于,participant_count)和一些最近的消息,该消息从该消息转发给我。 该怎么办?

1 个答案:

答案 0 :(得分:0)

我编写了这段代码,并使用‍ 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)

您可以在‍ 聊天部分中查看转发邮件的所有渠道的列表。 (您可以获得titleusernamechannel_idphotoenter image description here

enter image description here

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

例如:

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

enter image description here