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

Telegram Bot API:sendVoice方法中multipart/form-data格式下reply_parameters传参

解决Telegram Bot API sendVoice方法multipart/form-data格式下传递reply_parameters的问题

当使用multipart/form-data格式调用sendVoice时,处理reply_parameters这类非原始类型的对象参数,核心方法是把对象序列化为合法的JSON字符串,然后作为普通键值对参数传递即可。

具体操作方式:

  • 先构造reply_parameters对象(比如必填的message_id,可选的chat_id、allow_sending_without_reply等字段)
  • 将这个对象序列化为标准JSON字符串
  • 在multipart/form-data表单中,添加一个键为reply_parameters的文本字段,值就是序列化后的JSON字符串

举个实际的curl请求示例:

curl -X POST "https://api.telegram.org/bot<你的BotToken>/sendVoice" \
  -F "voice=@/本地语音文件路径.ogg" \
  -F "chat_id=目标聊天ID" \
  -F "reply_parameters={\"message_id\": 要回复的消息ID}"

需要注意的细节:

  • 确保JSON字符串格式正确,命令行环境下要对引号做转义;如果用编程语言实现,直接用内置的JSON序列化函数(比如Python的json.dumps()、Java的ObjectMapper.writeValueAsString())自动处理,避免手动转义出错
  • 不要尝试把对象拆分成嵌套参数(比如reply_parameters[message_id]=xxx),Telegram API不支持这种格式,必须传递完整的JSON字符串
  • 如果要设置allow_sending_without_reply这类布尔值,直接在JSON里写true或false即可,比如{"message_id": 12345, "allow_sending_without_reply": true}

内容的提问来源于stack exchange,提问作者Aleksand Kondaurov

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 22:35:57