如何使用Telethon发送压缩后可全尺寸展示的Telegram照片
实现发送压缩后可全尺寸展示照片的方法
send_message方法对远程URL的媒体类型自动识别逻辑优先级低,仅添加force_document=False参数无法触发正确的照片发送逻辑。
按以下方式调整即可实现目标效果:
- 改用
send_file方法发送媒体,该方法对媒体发送类型的控制精度远高于send_message的附属文件传参 - 显式设置
force_document=False,强制以普通照片形式而非文件形式发送内容 - 图片附带的文字描述通过
caption参数传入,替代原send_message的正文参数
修改后的可运行代码如下:
client = TelegramClient( "session", api_id=CONFIG["client_api_id"], api_hash=CONFIG["client_api_hash"] ) client.connect() if not client.is_user_authorized(): phone = input("Your phone: ") client.send_code_request(phone) myself = client.sign_in(phone, input("Your code: ")) # 发送经Telegram压缩、支持点击查看全尺寸的照片 client.send_file( entity=777000, file="https://avatars.mds.yandex.net/get-zen_doc/5295210/pub_60dd6ea6828fb32711ebfc76_60dd7130df4f6532136de7b1/scale_1200", caption="test", force_document=False )
补充说明:该模式下Telegram会自动对图片做符合平台规则的压缩,聊天列表中展示适配窗口宽度的预览图,点击即可查看全尺寸的压缩后图片,和官方客户端发送普通照片的效果完全一致。如果需要发送无压缩原图,再将
force_document参数改为True以文件形式发送即可。
内容的提问来源于stack exchange,提问作者SkyGuy
相关产品推荐
相关产品推荐

