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

Ruby调用Telegram Bot的sendMediaGroup发送图片组报错求助

Telegram Bot Ruby代码发送多张图片的修复方案

问题原因

  1. 第一个错误Bad Request: media not found:你的arr_r数组包含空字符串"",如果代码中z取0,会传入无效的空图片ID,导致Telegram无法找到对应媒体。
  2. 第二个错误Bad Request: can't parse media JSON object:你将哈希对象转为字符串传给media参数,而Telegram API要求media是媒体对象数组,不是字符串化的哈希。

正确代码实现

先过滤无效的空ID,再构造符合API要求的媒体数组:

# 过滤数组中的空元素,只保留有效的图片ID
valid_photo_ids = arr_r.reject { |id| id.empty? }

# 构造Telegram API要求的media数组结构
media_items = valid_photo_ids.map do |photo_id|
  { type: 'photo', media: photo_id }
end

# 发送媒体组
bot.api.sendMediaGroup(chat_id: message.from.id, media: media_items)

核心注意事项

  • sendMediaGroup的media参数必须是数组,每个元素是包含type和media键的哈希(你之前误用了photo键,正确键名是media)。
  • 必须确保传入的媒体ID有效,空值或无效ID会触发找不到媒体的错误。
  • 无需给sendMediaGroup额外传递type参数,每个媒体对象的type字段已指定内容类型。

内容的提问来源于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 03:35:23