2024-07-07 12:05:18 发布
网友
我用的是TelethonAPI 想提取我是成员的所有频道的固定消息。 请给我介绍一下程序。在
谢谢。在
use可以使用GetFullChannelRequest和GetHistoryRequest方法从一个通道提取固定消息
GetFullChannelRequest
GetHistoryRequest
from telethon import TelegramClient from telethon.tl.functions.channels import GetFullChannelRequest from telethon.tl.functions.messages import GetHistoryRequest from telethon.tl.types import PeerChannel api_id = XXXXX api_hash = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' phone_number = '+98XXXXXXXX' ################################################ client = TelegramClient('session_name', api_id, api_hash ) assert 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(PeerChannel(channel_id)) channel_info = client(GetFullChannelRequest(channel_entity)) pinned_msg_id = channel_info.full_chat.pinned_msg_id if pinned_msg_id is not None: posts = client(GetHistoryRequest( channel_entity, limit=1, offset_date=None, offset_id=pinned_msg_id + 1, max_id=0, min_id=0, add_offset=0, hash=0 )) print(posts.messages[0].to_dict())
我使用了Telethon V0.19,但是以前的版本几乎相同
Telethon V0.19
从Telethon 1.2开始,代码要简单得多:
from telethon import TelegramClient, types, sync with TelegramClient('name', api_id, api_hash) as client: message = client.get_messages('TelethonChat', ids=types.InputMessagePinned())
但是,这对私人聊天不起作用(例如,自己获取固定消息)。为此,正如当前接受的答案提示,我们必须获取Full对象。对于私人聊天,这是^{},使用^{}:
Full
use可以使用
GetFullChannelRequest
和GetHistoryRequest
方法从一个通道提取固定消息我使用了
Telethon V0.19
,但是以前的版本几乎相同从Telethon 1.2开始,代码要简单得多:
但是,这对私人聊天不起作用(例如,自己获取固定消息)。为此,正如当前接受的答案提示,我们必须获取} ,使用^{} :
^{pr2}$Full
对象。对于私人聊天,这是^{相关问题 更多 >
编程相关推荐