im使用python和telethon获取消息。 我可以下载消息照片,但我不想存储和下载。 我想知道照片的网址,以便以后使用它随时访问。 有什么办法吗?
答案 0 :(得分:1)
电报API不会为您提供指向帖子媒体文件的直接URL。但是,作为一种解决方法,请看一下几个月前Telegram在其网站上添加的新功能:
您只需输入以下格式的网址即可查看网络中公共频道的帖子: https://t.me/“频道用户名” /“发布号”
(例如https://t.me/gizmiztel/2350)
这样,您可以解析DOM并找到每个媒体文件的直接URL。
注意:每种类型的文件可能需要一个单独的方法来提取文件的URL。
答案 1 :(得分:1)
@tashakori 答案的扩展
对于没有设置用户名的频道(我见过几个),它是 ?email={contactfield=email|true}
例如
https://t.me/c/channel_id/message_id
另请注意:当然,只有加入频道的用户才能访问这些链接。
还有 async def main():
# TODO setup client etc.
# this channel id was obtained from using something similar to https://stackoverflow.com/a/62849271/8608146
channel = await client.get_entity(-1001006503122)
async for message in client.iter_messages(channel, reverse=True):
# channel.id and the above -100.. id are not same
# this channel.id looks like 1006503122
print("message URL", f"https://t.me/c/{channel.id}/{message.id}")
属性返回 -100...