如何用Telegram Bot API实现带链接的斜体下划线文本(C#)
使用Telegram Bot API和C#实现带格式与超链接的消息
Telegram Bot API支持MarkdownV2格式,可同时实现斜体、下划线和超链接的组合效果,具体实现步骤如下:
格式规则说明
- 斜体:文本用
*包裹 - 下划线:文本用
__包裹 - 超链接:格式为
[显示文本](链接地址) - 注意:所有特殊字符(如
_、*、[、]等)需要用\转义,否则会导致格式失效
C#代码实现
基础示例
直接构造符合格式的文本并发送:
using Telegram.Bot; using Telegram.Bot.Types.Enums; // 初始化Bot客户端 var botClient = new TelegramBotClient("你的机器人Token"); // 构造带斜体、下划线和超链接的消息文本 var formattedText = "*__这是一段包含[示例链接](https://example.com)的斜体下划线文本__*"; // 发送消息,指定解析模式为MarkdownV2 await botClient.SendTextMessageAsync( chatId: "目标聊天ID", text: formattedText, parseMode: ParseMode.MarkdownV2 );
处理特殊字符与动态链接
如果文本包含特殊字符,或者需要给任意单词动态添加链接,可使用辅助方法处理转义:
using Telegram.Bot; using Telegram.Bot.Types.Enums; var botClient = new TelegramBotClient("你的机器人Token"); // 给指定文本添加斜体下划线,并为目标单词插入超链接 string BuildFormattedMessage(string originalText, string targetWord, string linkUrl) { // 转义所有MarkdownV2特殊字符 var escapedOriginal = EscapeMarkdownSpecialChars(originalText); var escapedWord = EscapeMarkdownSpecialChars(targetWord); var escapedUrl = EscapeMarkdownSpecialChars(linkUrl); // 替换目标单词为带链接的格式,再包裹斜体和下划线 var processedText = escapedOriginal.Replace(escapedWord, $"[{escapedWord}]({escapedUrl})"); return $"*__{processedText}__*"; } // MarkdownV2特殊字符转义方法 string EscapeMarkdownSpecialChars(string text) { char[] specialChars = { '_', '*', '[', ']', '(', ')', '~', '`', '>', '#', '+', '-', '=', '|', '{', '}', '.', '!' }; foreach (char c in specialChars) { text = text.Replace(c.ToString(), $"\\{c}"); } return text; } // 使用示例:为"自定义机器人"添加链接 var message = BuildFormattedMessage( "我正在使用Telegram Bot API和C#开发自定义机器人", "自定义机器人", "https://example.com/bot" ); await botClient.SendTextMessageAsync( chatId: "目标聊天ID", text: message, parseMode: ParseMode.MarkdownV2 );
内容的提问来源于stack exchange,提问作者Matthew Parker
相关产品推荐
相关产品推荐

