如何在Telegram中获取createStickerSet的access_hash和file_reference?

问题描述 投票:0回答:1

在我下面的代码中:

  sticer = "0.webm"


  upload_sticker = await client.upload_file(sticker)

  my_Stickers = InputStickerSetItem(document=InputDocument(id=upload_sticker.id,access_hash=upload_sticker.access_hash,file_reference=upload_sticker.file_reference),emoji="💀")


  result = await client(CreateStickerSetRequest(user_id=user, title="testset", short_name="jjkakschan_by_cool_bot", stickers=[my_Stickers]))

我正在尝试获取 access_hash 和 file_reference 但我不知道什么会返回它们

我有正确格式和编码的 webm 文件,我想使用它们创建一个视频贴纸集,这里我只使用 1 个进行演示。

我的问题是我是否可以获得我上传的 webm 文件的访问哈希和文件引用?

client.upload 仅返回:

InputFile(id=-67133921635690008, parts=1, name='0.webm', md5_checksum='5188d68feebc242395e98819582bac29')

但我相信我需要InputDocument

telegram telegram-bot python-telegram-bot telethon
1个回答
0
投票

file_reference
是用于访问媒体(例如下载)的临时随机字节串。这意味着媒体必须之前已发送或保存,并且您(很可能)通过消息访问它。

如果尚未设置媒体,则需要使用名称中带有 InputMedia

Uploaded
 构造函数。只有两个:
InputMediaUploadedDocument
InputMediaUploadedPhoto

照片仅作为将由服务器压缩的图像文件。

这样你就只剩下

InputMediaUploadedDocument
了。这就是您必须创建的内容,因为它需要
InputFile
作为参数。

InputMediaUploadedDocument(file=input_file, mime_type='application/octet-stream', attributes=[])`

根据需要进行调整。

要从上传的文档转到文档,您必须使用 UploadMediaRequest

 上传
媒体(不是您已经上传的文件)。

这可能会返回

MessageMediaDocument
,您可以将其与
utils.get_input_media
一起使用。

这非常令人困惑,但这就是 API 的工作原理。

© www.soinside.com 2019 - 2024. All rights reserved.