如何用Pyrogram上传Telegram动态?及替代方案咨询
上传Telegram动态的可行方案
用Pyrogram实现
Pyrogram 已支持上传动态功能,先确保安装最新版本:
pip install --upgrade pyrogram tgcrypto
示例代码(上传图片动态):
from pyrogram import Client import asyncio async def main(): async with Client("my_account") as app: await app.send_story( media="path/to/your/image.jpg", caption="我的第一条Pyrogram动态" ) asyncio.run(main())
视频动态直接将media参数替换为视频路径即可,还可额外设置privacy_rules(隐私权限)、expire_period(动态过期时间)等参数。
用Telethon实现
Telethon 同样支持上传动态,先升级到最新版本:
pip install --upgrade telethon
示例代码(上传图片动态):
from telethon import TelegramClient from telethon.tl.functions.stories import SendStoryRequest from telethon.tl.types import InputMediaUploadedPhoto import asyncio # 替换为你在Telegram开发者平台申请的信息 API_ID = 123456 API_HASH = "your_api_hash_here" async def main(): async with TelegramClient("my_account", API_ID, API_HASH) as client: media = await client.upload_file("path/to/your/image.jpg") await client(SendStoryRequest( media=InputMediaUploadedPhoto(media), caption="用Telethon发布的动态" )) asyncio.run(main())
上传视频动态时,需改用InputMediaUploadedDocument类型,并指定视频对应的MIME类型。
自行实现(基于Telegram原生API)
如果不想依赖第三方库,可直接调用Telegram原生API的stories.sendStory方法,核心步骤如下:
- 完成账号授权,获取有效会话(session)
- 将媒体文件分片上传至Telegram服务器,得到对应的
InputMedia对象 - 构造
SendStoryRequest请求并发送
这种方式需要处理文件上传、参数序列化等底层细节,开发成本较高,不如直接使用成熟第三方库高效。
注意事项
- 先确认你的账号能在Telegram官方APP正常发布动态(部分账号可能需要手动发布一条动态激活功能)
- API ID和API Hash需在Telegram开发者平台申请
- 媒体文件需符合Telegram限制:图片大小不超过5MB,视频大小不超过1GB、时长不超过1分钟等
内容的提问来源于stack exchange,提问作者AbdEl-Raoof Nabil
相关产品推荐
相关产品推荐

