I am new to this. I am writing a telegram bot that interacts with Google Sheets in Google App Script. I am having an issue with MarkdownV2.
My code has one \ before the '!' as Telegram said in their document:
'!' must be escaped with the preceding character \
var send = url + "/sendMessage?chat_id=" + id + "&text=" + "Hey\! New item" + "&parse_mode=MarkdownV2";
However, it says I need to use two \\ instead.
Exception: Request failed for https://api.telegram.org returned code 400. Truncated server response: {"ok":false,"error_code":400,"description":"Bad Request: can't parse entities: Character '!' is reserved and must be escaped with the preceding '\\'"} (use muteHttpExceptions option to examine full response)
But when I use two \\ I still have a problem running.
Exception: Invalid argument: https://api.telegram.org/botxyz:abc/sendMessage?chat_id=xyz&text=Hey\!%20New%20item&parse_mode=MarkdownV2
When I run the link https://api.telegram.org/botxyz:abc/sendMessage?chat_id=xyz&text=Hey\!%20New%20item&parse_mode=MarkdownV2 in the error, it connects to Telegram normally.
Thank you.
In your script, how about the following modification?
var url = "https://api.telegram.org/botxyz:abc";
var id = "xyz";
var send = encodeURI(url + "/sendMessage?chat_id=" + id + "&text=" + "Hey\\! New item" + "&parse_mode=MarkdownV2");
console.log(send)
I thought that in your situation \! might be \\!.
When this script is run, https://api.telegram.org/botxyz:abc/sendMessage?chat_id=xyz&text=Hey%5C!%20New%20item&parse_mode=MarkdownV2 can be seen in the log. This value is the same as the URL you tested at the bottom of your question.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With