Отправка файла с использованием SendDocument с TelegramAPI - PullRequest
0 голосов
/ 22 июня 2019

Я пытаюсь отправить файл, используя метод sendDocument с Telegram API.Я пытаюсь отправить кортеж с именем файла и содержимым файла, но API Telegram жалуется, что в запросе нет документа:

"Неверный запрос: в документе нет документазапрос "

Однако.Я уверен, что читаю файл:

def send_local_file(mypath, chat_id):
    file_length_in_bytes = os.path.getsize(mypath)
    name=os.path.basename(mypath)

    with open(mypath, "rb") as binary_file:
        document = binary_file.read()

        file = {'file': (name, document)}
        if(file_length_in_bytes < 52428800):
            r = requests.post(cfg.URL + 'sendDocument', files=file)
            print(r.status_code, r.reason, r.content)
    return r

Что я делаю не так?

1 Ответ

0 голосов
/ 09 июля 2019

Самый простой способ отправки документов с вашего локального компьютера:

    file = open('document.txt', 'rb')
    bot.sendDocument(chat_id, document=file)

Если вы хотите отправить файл с запросом http, ваш файл должен быть на каком-либо WEB-сервере, и ваш запрос должен выглядеть следующим образом

https://api.telegram.org/bot<TOKEN>/sendDocument?chat_id=<ID>&document=https://example.com/file.txt
...