我正在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
)
并将其附加到结果数组
有什么建议吗?
答案 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部分不接受本地图片)