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

如何用Bash的curl向Telegram单条消息发送带多行格式化文本的图片

解决Telegram sendPhoto接口多行caption换行及格式化问题

问题根源在于请求格式的差异:sendMessage用-d参数时采用application/x-www-form-urlencoded格式,需要用%0A作为URL编码的换行符;但sendPhoto用-F参数时是multipart/form-data格式,直接使用原始换行符即可,无需URL编码。

以下是Ubuntu 22.04.3 LTS环境下的可行curl命令示例:

示例1:使用转义换行符\n

curl -X POST "https://api.telegram.org/botXXXXX/sendPhoto" \
-F chat_id=YYYY \
-F photo=@"path_to_photo.jpg" \
-F caption='<b>加粗的第一行</b>\n第二行普通文本\n第三行带<i>斜体</i>的内容' \
-F parse_mode="HTML"

示例2:直接输入换行(shell原生支持)

curl -X POST "https://api.telegram.org/botXXXXX/sendPhoto" \
-F chat_id=YYYY \
-F photo=@"path_to_photo.jpg" \
-F caption='<b>加粗的第一行</b>
第二行普通文本
第三行带<i>斜体</i>的内容' \
-F parse_mode="HTML"

注意事项

  • 替换命令中的XXXXX为你的机器人Token,YYYY为目标聊天ID,path_to_photo.jpg为本地图片的实际路径
  • parse_mode="HTML"会正常解析caption中的HTML标签,实现文本格式化效果

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 05:40:05