Как отправить файл pdf обратно пользователю с помощью бота python Telegram? - PullRequest
1 голос
/ 18 июня 2020

Я пытался использовать update.sendDocument(chat_id = update.message.chat_id, document = open(something.pdf, 'b')), но он не вернул мне файл pdf. Любая помощь?

1 Ответ

0 голосов
/ 10 июля 2020

Для справки, вот полный рабочий пример, который у меня сработал. Если он по-прежнему не работает, убедитесь, что размер отправляемых вами PDF-документов меньше 20 МБ в соответствии с https://core.telegram.org/bots/api#sending -files

#!/usr/bin/python
import sys
import time
import telepot
import cookie
from telepot.loop import MessageLoop
import pdb

def handle(msg):
    content_type, chat_type, chat_id = telepot.glance(msg)
    print(content_type, chat_type, chat_id)
    if content_type == 'text' and msg["text"].lower() == "news":
        # let the human know that the pdf is on its way        
        bot.sendMessage(chat_id, "preparing pdf of fresh news, pls wait..")
        file="/home/ubuntu/web/news.pdf"

        # send the pdf doc
        bot.sendDocument(chat_id=chat_id, document=open(file, 'rb'))
    elif content_type == 'text':
        bot.sendMessage(chat_id, "sorry, I can only deliver news")

# replace XXXX.. with your token
TOKEN = 'XXXXXXXXXXXXXXXXXXXX'
bot = telepot.Bot(TOKEN)
MessageLoop(bot, handle).run_as_thread()
print ('Listening ...')
# Keep the program running.
while 1:
    time.sleep(10)
...