【问题标题】:send bold & italic text on telegram bot with html使用 html 在电报机器人上发送粗体和斜体文本
【发布时间】:2016-11-02 08:02:41
【问题描述】:

我在电报中创建了一个机器人

我想将带有 HTML 页面的粗斜体文本发送给机器人

我的 HTML 代码是:

<html>
<head><title>Telegram</title></head>
<body>
    <form method="GET" action="https://api.telegram.org/bot(token)/sendMessage">
        <input type="hidden" name="chat_id" value="@testadminch">
        <input type="hidden" name="parse_mod" value="markdown">
        <textarea name="text"></textarea>
        <input type="submit" value="Submit">
    </form>
</body>
</html>

如果我发送*bold*,输出应该是粗体,但它不起作用

【问题讨论】:

  • 您确定将令牌放入表单中吗?
  • 1.你有一个错字:parse_modE。 2. 你不应该在公共网站上使用这样的代码,因为任何访问网站的客户端都会下载它的 HTML 源代码,所以每个人都会看到你的电报机器人令牌

标签: html sendmessage telegram telegram-bot


【解决方案1】:

斜体可以使用'i'标签,粗体可以使用'b'标签

    <i> italic </i>
    <b> bold </b>

【讨论】:

  • 显示html模式和markdown模式。由于第一个选项不适合您,我建议另一个选项“要使用此模式,请在使用 sendMessage 时在 parse_mode 字段中传递 HTML。当前支持以下标签:bold粗体 斜体, 斜体 内嵌URL 内嵌固定宽度代码
    预格式化的固定宽度代码块
    "
  • 我将 parse_mod 更改为 HTML 并发送 &lt;b&gt;bold&lt;/b&gt; &lt;bold&gt;bold&lt;/bold&gt; 输出为:&lt;b&gt;bold&lt;/b&gt; &lt;bold&gt;bold&lt;/bold&gt; 我希望输出为 bold
【解决方案2】:

发送粗体

  1. parse_mode 设置为markdown 并发送*bold*
  2. parse_mode 设置为html 并发送&lt;b&gt;bold&lt;/b&gt;

发送斜体

  1. parse_mode 设置为markdown 并发送_italic_
  2. parse_mode 设置为html 并发送&lt;i&gt;italic&lt;/i&gt;

【讨论】:

【解决方案3】:

如果你使用 PHP,你可以使用它,我相信它在其他语言中也几乎相似

$WebsiteURL = "https://api.telegram.org/bot".$BotToken;
$text = "<b>This</b> <i>is some Text</i>";
$Update = file_get_contents($WebsiteURL."/sendMessage?chat_id=$chat_id&text=$text&parse_mode=html);

echo $Update;

这是您可以使用的所有标签的列表

<b>bold</b>, <strong>bold</strong>
<i>italic</i>, <em>italic</em>
<a href="http://www.example.com/">inline URL</a>
<code>inline fixed-width code</code>
<pre>pre-formatted fixed-width code block</pre>

【讨论】:

  • @Mo.仅当您将解析模式设置为“html”时它才有效。
  • @MarcoConcas 没错,因为这些是 HTML 标签!
【解决方案4】:

因此,当您使用电报发送消息时:

$token = <Enter Your Token Here>
$url = "https://api.telegram.org/bot".$token;

$chat_id = <The Chat Id Goes Here>;
$test = <Message goes Here>;

//sending Message normally without styling
$response = file_get_content($url."\sendMessage?chat_id=$chat_id&text=$text");

如果我们的消息中有 html 标签,我们添加“parse_mode”,这样我们的 url 就变成了:

$response = file_get_content($url."\sendMessage?chat_id=$chat_id&text=$text&parse_mode=html")

解析模式可以是“HTML”或“markdown”

【讨论】:

    【解决方案5】:

    要发送粗体、斜体、固定宽度的代码,您可以使用:

    # Sending a HTML formatted message
    bot.send_message(chat_id=@yourchannelname, 
                 text="*boldtext* _italictext_ `fixed width font` [link]   (http://google.com).", 
                 parse_mode=telegram.ParseMode.MARKDOWN)
    

    确保您已启用机器人作为您的管理员。然后只有它可以发送消息

    【讨论】:

    • 为此安装什么库? python-telegram-bot ?那没用。
    • pip install python-telegram-bot
    • 即使在今天也对我有用,如果你有问题再试一次,然后我会告诉版本
    • 可能取决于您访问 API 的方式。我正在使用api.telegram.org/bot&lt;api token&gt;/"sendMessage?&lt;different methods&gt;。因此,parse_mode=MARKDOWN&amp;chat_id={}&amp;text={}".format(chat_id, msg) 在发布消息时对我有用。
    【解决方案6】:

    For JS:

    首先,如果您还没有安装电报机器人,只需使用命令安装

    npm i messaging-api-telegram
    

    现在,用

    初始化它的客户端
    const client = new TelegramClient({
        accessToken: process.env.<TELEGRAM_ACCESS_TOKEN>
    });
    

    然后,使用 sendMessage() 异步函数发送消息,如下所示 -

        const resp = await client.sendMessage(chatId, msg, {
            disableWebPagePreview: false,
            disableNotification: false,
            parseMode: "HTML"
        });
    

    这里的解析模式默认是纯文本,但使用 parseOptions parseMode 我们可以做到 1. “HTML”和“MARKDOWN”让使用时尚的方式发送消息。还可以从电报页面获取您的机器人访问令牌,并从相同的聊天 ID 或群聊 ID 获取。

    【讨论】:

      【解决方案7】:

      根据the docs,您可以将parse_mode字段设置为:

      • MarkdownV2
      • HTML

      Markdown 模式仍然有效,但它现在被视为传统 模式。请改用 MarkdownV2

      您可以像这样传递parse_mode 参数:

      https://api.telegram.org/bot[yourBotKey]/sendMessage?chat_id=[yourChatId]&parse_mode=MarkdownV2&text=[yourMessage]
      

      对于使用 MarkdownV2 的粗体和斜体:

      *bold text*
      _italic text_
      

      对于 HTML:

      <b>bold</b> or <strong>bold</strong>
      <i>italic</I> or <em>italic</em>
      

      无论您选择哪种格式,请务必对您的查询字符串参数进行编码。例如:

      val message = "*bold text*";
      val encodedMsg = URLEncoder.encode(message, "UTF-8");
      
      • Javascript (ref)
      var message = "*bold text*"
      var encodedMsg = encodeURIComponent(message)
      
      $message = "*bold text*";
      $encodedMsg = urlencode($message);
      

      【讨论】:

        猜你喜欢
        • 2021-01-09
        • 2019-02-28
        • 1970-01-01
        • 2011-07-18
        • 2022-11-04
        • 1970-01-01
        • 1970-01-01
        • 2017-06-16
        • 1970-01-01
        相关资源
        最近更新 更多