You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Pyrogram原生函数及Telegram机器人创建并添加贴纸包

使用Pyrogram创建贴纸包并添加贴纸的完整解决方案

前置要求

  • 确保Pyrogram版本为最新(执行pip install --upgrade pyrogram tgcrypto更新)
  • 贴纸文件符合Telegram规范:
    • 格式:PNG 或 WebP
    • 尺寸:宽/高至少一个为512px,另一个不超过512px
    • 文件大小:不超过512KB
  • 机器人已获取正确的API ID、API Hash和Bot Token(从Telegram官方平台和@BotFather获取)

1. 创建贴纸包

使用Pyrogram的create_sticker_set原生函数,注意short_name必须全局唯一,只能包含小写字母、数字和下划线,长度4-64字符。

完整代码示例:

from pyrogram import Client
from pyrogram.types import InputSticker
import asyncio

# 替换为你的参数
API_ID = 123456
API_HASH = "your_api_hash_here"
BOT_TOKEN = "your_bot_token_here"

async def create_sticker_pack():
    async with Client("sticker_bot", api_id=API_ID, api_hash=API_HASH, bot_token=BOT_TOKEN) as app:
        # 获取机器人自身ID
        bot_info = await app.get_me()
        # 创建贴纸包(首次创建需至少添加1张贴纸)
        await app.create_sticker_set(
            user_id=bot_info.id,
            title="我的专属贴纸包",  # 贴纸包显示名称
            short_name="my_unique_stickers",  # 全局唯一标识,不能重复
            stickers=[
                InputSticker(
                    sticker="path/to/first_sticker.png",  # 本地文件路径或已上传的文件ID
                    emojis="😊"
                )
            ]
        )
        print("贴纸包创建成功")

asyncio.run(create_sticker_pack())

2. 向贴纸包添加贴纸

使用add_sticker_to_set函数,需指定贴纸包的short_name和要添加的贴纸信息。

代码示例:

async def add_sticker_to_pack():
    async with Client("sticker_bot", api_id=API_ID, api_hash=API_HASH, bot_token=BOT_TOKEN) as app:
        bot_info = await app.get_me()
        await app.add_sticker_to_set(
            user_id=bot_info.id,
            short_name="my_unique_stickers",  # 对应已创建的贴纸包short_name
            sticker=InputSticker(
                sticker="path/to/second_sticker.webp",
                emojis="😂"
            )
        )
        print("贴纸添加成功")

asyncio.run(add_sticker_to_pack())

常见错误排查

  • SHORT_NAME_INVALID:检查short_name格式是否符合要求,或是否已被其他贴纸包占用,换一个唯一的名称重试。
  • STICKER_INVALID:核实贴纸文件的尺寸、格式和大小是否符合规范,建议用图片编辑工具调整到512x512以内的尺寸。
  • FORBIDDEN: bot blocked by user:如果是为其他用户创建贴纸包,需确保用户未屏蔽机器人,且机器人能向用户发送消息;如果是机器人自身的贴纸包,确认user_id填写的是机器人自身ID。
  • STICKERSET_NOT_MODIFIED:添加的贴纸内容与已有贴纸重复,更换不同的贴纸文件后重试。

内容的提问来源于stack exchange,提问作者Mani_az09

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 13:05:02