'InlineQueryResultPhoto'对象没有属性'_has_parse_mode'

时间:2020-07-19 19:17:16

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

我正在python 3.8上使用python-telegram-bot,当我尝试以InlineQueryResultPhoto的形式发送图像时说

     'InlineQueryResultPhoto' object has no attribute '_has_parse_mode' 

at

  bot.answer_inline_query(inline.id,results)

我已将InlineQueryResult声明为

 inlineQueryResultPhoto = InlineQueryResultPhoto(
    photo_url= 'data/pics/ee.jpeg',
    thumb_url= 'data/pics/ee.jpeg',
    id= 2878784165828088572,
    photo_width= 48,
    photo_height= 48
)

并将其附加到结果数组

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

在进行令人沮丧的调试之后,我发现通过编辑answer_inline_query函数本身来完成此操作的简单方法,因为它询问的是不存在的属性 (目前为止用于测试)

   ....
   url = '{0}/answerInlineQuery'.format(self.base_url)

    for res in results:
        if self.defaults:
            res.parse_mode = self.defaults.parse_mode
        else:
            res.parse_mode = None
            
    results = []  # res.to_dict() for res in results]
    for i in range(0, 6):
        InlineQueryResultPhoto = {
            'type': 'photo',
            'photo_url': 'https://www.theblogstarter.com/wp-content/uploads/2015/10/start-your-first-blog.png',
            'thumb_url': 'https://www.theblogstarter.com/wp-content/uploads/2015/10/start-your-first-blog.png',
            'id': 287878416582808857 + i,
            'photo_width': 30,
            'photo_height': 30
        }
        results.append(InlineQueryResultPhoto)

    data = {'inline_query_id': inline_query_id, 'results': results}
    ...

希望有人能提供更有效的解决方案(因为此尝试仅适用于照片,并且url部分不接受本地图片)