send bold & italic text on telegram bot with html
To send bold:
- Set the
parse_mode
tomarkdown
and send*bold*
- Set the
parse_mode
tohtml
and send<b>bold</b>
To send italic:
- Set the
parse_mode
tomarkdown
and send_italic_
- Set the
parse_mode
tohtml
and send<i>italic</i>
If you are using PHP you can use this, and I'm sure it's almost similar in other languages as well
$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;
Here is the list of all tags that you can use
<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>
According to the docs you can set the parse_mode
field to:
- MarkdownV2
- HTML
The Markdown mode still works but it's now considered a legacy one. Use MarkdownV2 instead.
You can pass the parse_mode
parameter like this:
https://api.telegram.org/bot[yourBotKey]/sendMessage?chat_id=[yourChatId]&parse_mode=MarkdownV2&text=[yourMessage]
For bold and italic using MarkdownV2:
*bold text*
_italic text_
And for HTML:
<b>bold</b> or <strong>bold</strong>
<i>italic</I> or <em>italic</em>
Make sure to encode your query-string parameters regardless the format you pick. For example:
- Java/Scala (see note on spaces):
val message = "*bold text*";
val encodedMsg = URLEncoder.encode(message, "UTF-8");
- Javascript (ref)
var message = "*bold text*"
var encodedMsg = encodeURIComponent(message)
- PHP (ref)
$message = "*bold text*";
$encodedMsg = urlencode($message);