в моем коде ниже:
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, но не знаю, что их возвращает.
У меня есть веб-файлы в правильном формате и кодировке, и я хочу создать набор видеостикеров, используя их, здесь я использовал только 1 для демонстрации.
мой вопрос: получу ли я хэш доступа и ссылку на загруженные мной веб-файлы?
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.
Мне не пришлось использовать
utils.get_input_mediaв моем случае, все, что мне нужно было сделать, это использоватьres2 = await client(UploadMediaRequest(peer=user, media=media))с носителем какInputMediaUploadedDocument, и я получилDocument, который хотел!