使用python-telegram-bot从文件发送图像时出错

时间:2017-10-05 09:15:12

标签: python-2.7 telegram python-telegram-bot

我在使用python telegram bot从文件发送照片时遇到问题。 它在图片URL方面效果很好,但在尝试从磁盘发送文件时却没有。

重现的步骤

bot.send_photo(chat_id=update.message.chat_id, photo=open('/mydir/log.jpg', 'rb'))

收到错误

*** BadRequest: Url host is empty

配置

  • OS:Osx

  • Python:2.7 python

  • -m电报

    • _python-telegram-bot 8.0
    • certifi 2017.07.27.1
    • future 0.16.0
    • Python 2.7.13(默认,2016年12月18日,07:03:39)[GCC 4.2.1兼容的Apple LLVM 8.0.0(clang-800.0.42.1)] _

根据doc,我们可以从磁盘传递文件https://github.com/python-telegram-bot/python-telegram-bot/wiki/Code-snippets#post-an-image-file-from-disk

1 个答案:

答案 0 :(得分:2)

问题在于unicode照片的路径。

photo = open(('/mydir/log.jpg').encode('utf-8'), 'rb')
bot.send_photo(chat_id=update.message.chat_id, photo=photo)

telegram.inputfile的_方法中如果不发送完全unicode表单,则联接会生成UnicodeDecodeError。