在我下面的代码中:
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
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 的工作原理。