如何用Ruby实现Telegram机器人下载用户发送的图片?
如何在Ruby中下载Telegram机器人收到的图片?
我正在用Ruby开发Telegram机器人,用户会发送消息,有时是图片。我需要把这些图片保存到Ruby文件所在目录,方便后续转发给其他用户。
我了解Telegram官方的getFile接口,也查过相关问题,但刚接触Ruby仅5个月,不知道怎么在Ruby中实际使用它。试了好几种代码都无法正常运行,比如这段:
bot.messages_handler(content_types=['photo']) bot.send_message(message.chat_id,bot.get_file_url(message.photo[0].file_id))
希望能得到帮助。
更新:已实现图片转发,但寻求更优方案
经过调试和分析,我写出了能提取图片file_id并转发给其他用户的代码,虽然能正常运行,但写法比较粗糙:
if message.photo info_about_phot = message.photo.to_s #将图片的所有信息哈希转为字符串 for i in ((info_about_phot.index('@file_id="')+10).. (info_about_phot.index('", @file_unique_id=')-1)) #在图片信息中找到file_id的所有字符 info_about_phot = info_about_phot + message.photo.to_s[i] #从所有字符中提取file_id end end bot.api.send_photo(chat_id: message.from.id, photo: info_about_phot) #仅发送图片消息
这段代码能解决我的问题,但肯定有更简洁规范的写法,希望有人能给出优化方案。
内容的提问来源于stack exchange,提问作者Max
相关产品推荐
相关产品推荐

