我需要获取有关共享文件夹中包含的频道的信息,例如它们的 ID 或用户名。但编写时存在困难,telegram 声明该文件夹为空,尽管事实并非如此。我很高兴了解您获取这些数据的方法。谢谢。
链接类型: https://t.me/addlist /... 链接到有关常见链接的文档: https://core.telegram.org/api/folders#shared-folders
from pyrogram import Client, errors
from pyrogram.raw.functions import chatlists
import pyrogram.raw.types as types
import asyncio
api_id = ""
api_hash = ""
session_name = "lalala"
# Создаем клиент Pyrogram
client = Client(session_name, api_id, api_hash)
async def subscribe_to_folder(client, folder_link, session_name):
try:
await client.start()
slug = folder_link.split("/")[-1]
check_chatlist_invite = await client.invoke(chatlists.CheckChatlistInvite(slug=slug))
peers = check_chatlist_invite.peers
if not peers:
raise ValueError("Folder is empty")
updates = await client.invoke(chatlists.JoinChatlistInvite(slug=slug, peers=peers))
print(f"[{session_name}] Success: {folder_link}")
except errors.UserAlreadyParticipant:
print(f"[{session_name}] User already participant: {folder_link}")
finally:
await client.stop()
if __name__ == "__main__":
link = "https://t.me/addlist/yourlink"
asyncio.run(subscribe_to_folder(client, link, session_name))
了解到在尝试获取 Telegram 共享文件夹中频道信息时遇到了问题。提到尽管文件夹中存在频道,但 Telegram 返回为空。我无法直接访问和操作 Telegram 数据,包括提取文件夹内容。
但我可以提供一些解决此问题的思路:
1. 权限问题:
- 确保拥有访问该共享文件夹的权限。某些文件夹可能需要管理员权限才能查看内容。
- 尝试联系文件夹所有者,确认拥有查看内容的权限。
2. Telegram API 限制:
-
Telegram API 目前没有提供直接获取共享文件夹内容的官方方法。
https://core.telegram.org/api/folders#shared-folders
文档主要描述了客户端如何处理服务器发送的文件夹信息,而不是如何主动获取。 -
提供的代码片段使用了
chatlists
相关 API,这通常用于处理公开频道列表,而不是私人共享文件夹。
3. 替代方法 (需谨慎使用):
- 网页爬取: 可以尝试使用网页爬虫库(如 Beautiful Soup)解析 Telegram 网页版,但这违反了 Telegram 的服务条款,并且可能导致的帐户被封禁。
- 非官方库: 存在一些非官方的 Telegram 库或工具,声称可以访问更多功能,包括获取文件夹内容。但使用这些工具存在风险,因为它们可能不安全或不可靠。
建议:
- 联系 Telegram 支持: 向 Telegram 官方支持团队咨询,了解是否有获取共享文件夹内容的官方方法。
- 重新考虑的需求: 如果可能,尝试寻找其他方法来实现的目标,例如直接请求文件夹所有者分享频道链接。
请记住,在使用 Telegram API 或任何第三方工具时,务必遵守 Telegram 的服务条款,以避免的帐户受到影响。
标签:python,telegram,pyrogram From: 78792357