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

如何通过Node-RED在Watson Assistant中使用HTML标记?

解决Telegram Bot富媒体与parse_mode问题的方案

嘿,我完全懂你现在的困扰!想给聊天机器人加图片、按钮、带格式的文本这些富媒体内容,却找不到关键的parse_mode参数,确实让人头大。我之前做Telegram Bot开发时也踩过类似的坑,下面给你一步步拆解解决方案:

一、先搞懂parse_mode到底在哪

parse_mode是Telegram Bot API里用来指定文本格式解析方式的核心参数,它并不是藏得很深,只是不同的使用场景(直接调API/用开发框架)里,它的出现位置不一样:

1. 直接调用Telegram Bot API的情况

如果你是通过HTTP请求直接调用Telegram的接口(比如用curl、Postman或者自己写HTTP请求),parse_mode是作为请求参数放在请求体里的。比如调用sendMessage接口的示例:

curl -X POST https://api.telegram.org/bot<你的BotToken>/sendMessage \
-d chat_id=<聊天ID> \
-d text="<b>加粗文本</b> 或者 <i>斜体文本</i>" \
-d parse_mode="HTML"

这里的parse_mode就明确写在参数里,支持HTML、MARKDOWNV2、MARKDOWN(旧版,不推荐)三种值。

2. 使用开发框架/SDK的情况

如果你用的是像python-telegram-bot、pyTelegramBotAPI这类封装好的框架,parse_mode通常是作为发送方法的参数传入,或者可以全局设置。举两个常见框架的例子:

  • pyTelegramBotAPI:
    import telebot
    
    bot = telebot.TeleBot("你的BotToken")
    
    # 单条消息指定parse_mode
    @bot.message_handler(commands=['start'])
    def send_welcome(message):
        bot.send_message(message.chat.id, "<b>欢迎!</b> 这是<i>斜体文本</i>", parse_mode='HTML')
    
    bot.polling()
    
  • python-telegram-bot(v13+):
    from telegram import Update
    from telegram.ext import Updater, CommandHandler, CallbackContext
    
    def start(update: Update, context: CallbackContext) -> None:
        update.message.reply_text("<b>欢迎!</b> 这是<i>斜体文本</i>", parse_mode='HTML')
    
    def main() -> None:
        updater = Updater("你的BotToken")
        dispatcher = updater.dispatcher
        dispatcher.add_handler(CommandHandler("start", start))
        updater.start_polling()
        updater.idle()
    
    if __name__ == '__main__':
        main()
    

如果还是找不到,不妨检查下你用的框架版本——有些旧版本的框架可能参数名不同,或者需要在全局配置里开启格式支持。

二、实现其他富媒体内容的方法

除了格式化文本,你提到的图片、按钮、链接这些需求,还需要用到Telegram Bot API的其他接口:

  • 发送图片:用sendPhoto接口,直接传入图片的URL或者本地文件路径,示例:
    # pyTelegramBotAPI示例
    bot.send_photo(chat_id, photo="https://example.com/your-image.jpg", caption="这是图片的说明文本")
    
  • 添加按钮:需要用InlineKeyboardMarkup创建自定义键盘,比如跳转链接的按钮:
    # pyTelegramBotAPI示例
    from telebot.types import InlineKeyboardMarkup, InlineKeyboardButton
    
    markup = InlineKeyboardMarkup()
    markup.add(InlineKeyboardButton("点击跳转", url="https://example.com"))
    bot.send_message(chat_id, "这是带按钮的消息", reply_markup=markup)
    
  • 文本里加链接:只要开启parse_mode="HTML",就可以用<a href="链接地址">显示文本</a>的格式插入链接,比如:
    bot.send_message(chat_id, "点击<a href='https://example.com'>这里</a>访问网站", parse_mode='HTML')
    

三、排查小技巧

如果你还是找不到parse_mode,可以试试这两个方法:

  1. 去你用的框架官方文档里搜“parse_mode”,通常会有明确的参数说明和示例;
  2. 直接查看框架的源码(比如发送消息的方法定义),看看参数列表里有没有相关的配置项。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 09:45:31