You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 07:51:35