python-3.6 - 获取从该消息转发的通道
问题描述
我使用最新的 Telethon 框架。这实现了电报 API 的包装器。我想从频道中获取信息(标题、关于、参与者计数)和一些最近的消息,这些消息是从该消息转发给我的。怎么能做到这一点?
解决方案
我编写了这段代码并使用 <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
)
如果您想要更多信息(例如about
,participants_count
),您可以GetFullChannelRequest
在您的代码中使用:
例如 :
more_info1=client(GetFullChannelRequest(posts.chats[1]))
推荐阅读
- ios - Swift 5 - 用户第二次单击标签栏按钮后,需要帮助在视图控制器 1 上重新加载 Web 视图
- sql - Oracle xmlagg 字符串缓冲区太小
- javascript - [Vue 警告]:属性或方法“列表”未在实例上定义,但在渲染期间被引用。确保此属性是反应性的 [...]
- elasticsearch - 在 Logstash if 语句中使用非白名单字段
- python - 以编程方式确定为将每月债务减少 X 所需的最小组合余额
- javascript - Javascript - 遍历一棵树以生成节点的序列
- amazon-s3 - 为多个 s3 文本对象生成 redshift ddls
- javascript - 如何在javascript中运行一个jar文件并让它返回一个json
- angular - 错误类型错误:this.memberListRef 未定义
- api - Telegram API,获取私信