#python #telegram #tdlib
Вопрос:
Я пытаюсь использовать python-telegram
библиотеку : https://github.com/alexander-akhmetov/python-telegram/
Помогите мне понять, как отправить InputChatPhoto на сервер в моем запросе tg.call_method:
from telegram.client import Telegram
import base64
import json
class InputChatPhoto:
def __init__(self, name="photo.jpg"):
image = open(name, 'rb')
encoded_image = base64.b64encode(image.read())
self.photo = encoded_image.decode("ascii")
tg = Telegram(
api_id=123,
api_hash='12312',
phone=' 799999999', # you can pass 'bot_token' instead
database_encryption_key='changekey123',
)
tg.login()
result = tg.get_authorization_state()
result.wait()
print("AUTH: ", result.update)
image = InputChatPhoto()
print(type(image))
result = tg.call_method(method_name="setProfilePhoto",
params={"photo":{
"@type":"inputChatPhotoStatic",
"photo_":{
"@type": "inputFileLocal",
"path_": "home/usr/photo.jpg"
}
}
})
result.wait()
print(result.update)
print(result.ok_received) # False
print(result.error_info)
# {'@type': 'error', 'code': 400, 'message': 'InputFile is not specified', '@extra':
# {'request_id': '15f855f9662f4b3c9bd22dc43ef0482b'}}
print(result.error) # True
tg.stop() # you must call stop at the end of the script
Я пытался отправить необработанные байты — не получилось. Получено сообщение: «ожидайте, что объект TDLib получит строку»
Я попытался отправить inputFileRemote — тоже не сработало. Получена та же ошибка: «Входной файл не указан»
Как я должен указать? В классе документации inputFileLocal содержит только path_
поле. inputFileRemote содержит id_
то, что я указал, но все равно не годится 🙁