python - 如何使用python电报机器人将pdf文件发送回用户?
问题描述
我尝试使用update.sendDocument(chat_id = update.message.chat_id, document = open(something.pdf, 'b'))
,但它没有返回我的 pdf 文件。有什么帮助吗?
解决方案
作为参考,这是一个完整的工作示例,对我有用。如果它仍然不起作用,请确保您发送的 pdf 文档低于 20 MB,根据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)
推荐阅读
- r - 从 2 个不同的数据框中划分 2 列
- reactjs - 如何在 CSS 模块的其他 css 文件中使用类?
- react-native - React Native 导航器的本地化
- jquery - jquery 序列化不适用于角度材质选项卡
- java - 如何在java数据类型中分配光年的值
- wpf - 将媒体元素绑定到视图模型
- dart - 飞镖中是否可以有一个私有构造函数?
- linux - 无法启动 Kestrel。System.IO.IOException:无法绑定到地址 http://127.0.0.1:5000:地址已在使用中
- node.js - Nodejs BotFrameworkAdapter 不是构造函数错误
- pdf - Libre Office 标签在 iTextSharp 中不显示为“AcroFields”?