How to send messages using a Telegram Business account
tg_send_message(platform_id, text,client_message_id, reply_markup, parse_mode, disable_web_page_preview, protect_content, disable_notification, message_thread_id, entities)
Parameters:
Let’s consider a simple example with a set of required parameters:

The platform_id specifies the identifier of a specific client.
See the same example, but using variables:

In this example, the variable soob will contain the server’s response after sending a message.

If you save the message_id from the received response, it will allow you to later work with this message (edit, delete, forward, comment).
Difficulties often arise when using all the parameters. Let’s consider the following example:
-
First, declare all the parameters used in the function. Remember, parameters can be passed not only as values but also as variables, which is often more convenient and clearer. Variables such as platform_id and client_message_id can be obtained from the client’s profile card.
platform_id — Telegram client ID to which the message should be sent *\ >We will reply in the same chat where the client writestext - message text. \ >We use text formatting - for example, bold highlighting.
client_message_id - Message ID to be quoted\ >In chats, this variable is assigned its value automatically.
reply_markup — button settings **. \ >Let’s assign it to the variable opts.
parse_mode — Bold and italic text formatting in the description ***. It can have values such as html, markdown, markdownV2. The characters used for formatting message text are described here. \ >Let's use markdown.
disable_web_page_preview - Show link preview. To disable it, pass 1; otherwise, pass 0 or leave it empty "".\ >We can pass any value since the message text does not contain a link.
protect_content — Content protection flag. Pass any value except 0, False, or '' to enable.\ >We don’t need content protection, so we’ll pass an empty string ''.
disable_notification — Sound notification flag (default: 0). Pass 1 to disable notification, 0 to enable it.\ >A notification is a pop-up window displaying the message text. Let’s enable it. -
Next, we assemble the function. Remember to assign the function to a variable — this will allow you to track the message sending status.

Here’s what we got:
After the client sends us the keyword test, we reply by quoting his message.
In ok we see the sending status; next comes information about the message itself — its ID, sender data, and content.
Example with the entities parameter
You can store the original string in a variable, as shown below:
text = "qwert asdfg zxcvb poiuy lkjhg 12345"
You should write the parameter as a dictionary with the data and specify the desired formatting by indicating the fonts:
entities = [{"offset":0,"length":5,"type":"bold"},{"offset":6,"length":4,"type":"text_link","url":"`` https://mavibot.ai"},{"offset":11,"length":9,"type":"strikethrough"},{"offset":21,"length":6,"type":"spoiler"},{"offset":29,"length":12,"type":"code"}]
Pass the parameter last in the function you use. The parameter can be passed to both the tg_send_message and tg_send_message_1 functions:
x = tg_send_message(platform_id, text, None, None, None, False, False, False, None, entities)
To assign text with line breaks to a variable, specify the value as follows:
text = "First line of text" + "\n" + "Second line of text" + "\n" + "Third line"
How to send a message specifying a particular Telegram bot
tg_send_message_1(token, platform_id, text, client_message_id, reply_markup, parse_mode, disable_web_page_preview, protect_content, disable_notification, message_thread_id, entities, business_connection_id)
Example of passing the parameter:
entities = [{"offset":0,"length":5,"type":"bold"},{"offset":6,"length":4,"type":"text_link","url":"https://mavibot.ai"},{"offset":11,"length":9,"type":"strikethrough"},{"offset":21,"length":6,"type":"spoiler"},{"offset":29,"length":12,"type":"code"}]
The example shows only the dictionary, while the message text itself is assigned to a separate variable.
How to edit text in Telegram message
Please note!
The message editing function is available only for new and recently sent messages.
The time window during which message editing is allowed is determined by the messenger itself and depends on the load/activity of your bot; it may be shortened for editing.
According to the messenger’s technical support, the optimal time frame for editing a message is 48 hours.
tg_edit_message_text(platform_id, message_id, text, reply_markup, parse_mode, disable_web_page_preview, entities)
How to send a reaction to a message
tg_set_reaction(platform_id, message_id, reaction)
Code example for copying:
react = tg_set_reaction(platform_id, 1556, '👌')
Example in the calculator:

How to edit an attachment description
tg_edit_message_caption(platform_id, message_id, caption, reply_markup, parse_mode, entities, show_caption_above_media)
How to edit media attachments in a message
How to edit an inline keyboard in a message
You can edit only an inline keyboard.
You can find a detailed example of working with Telegram API functions for editing messages below.
How to copy a message
tg_copy_message(platform_id, from_chat_id, message_id, reply_to_message_id, reply_markup, parse_mode, protect_content, disable_notification, caption, message_thread_id, entities, show_caption_above_media)
How to forward a message
tg_forward_message(platform_id, from_chat_id, message_id, protect_content, disable_notification, message_thread_id)
How to delete a message
tg_delete_message(platform_id, message_id)
! Use this method to delete a message, including service messages, with the following restrictions:
- A message can only be deleted if it was sent less than 48 hours ago.
- Messages with dice in a private chat can only be deleted if they were sent more than 24 hours ago.
- Bots can delete outgoing messages in private chats, groups, and supergroups.
- Bots can delete incoming messages in private chats.
- Bots with the can_post_messages permission can delete outgoing messages in channels.
- If a bot is an administrator of a group, it can delete any message there.
- If a bot has the can_delete_messages permission in a supergroup or channel, it can delete any message there.
How to delete multiple messages
tg_delete_messages(platform_id, message_ids)
! Use this method to delete a message, including service messages, with the following restrictions:
- A message can only be deleted if it was sent less than 48 hours ago.
- Messages with dice in a private chat can only be deleted if they were sent more than 24 hours ago.
- Bots can delete outgoing messages in private chats, groups, and supergroups.
- Bots can delete incoming messages in private chats.
- Bots with the can_post_messages permission can delete outgoing messages in channels.
- If a bot is an administrator of a group, it can delete any message there.
- If a bot has the can_delete_messages permission in a supergroup or channel, it can delete any message there.
Example: message sending with Telegram API
Example 1
/*It’s convenient to define the text in a variable beforehand*/
text='Writing-writing-witing text'
/*Send a message function*/
soob=tg_send_message(platform_id, text)
/*Save the sent message ID*/
soob_id=soob['result']['message_id']
Example 2
id_group=-1001847103100
text='Testing message sending via API method. For example, *bold text*'
opts = {"inline_keyboard": [[{"text": "👍","callback_data":1}, {"text": "👎","callback_data":2}]]}
disable_web_page_preview=1
protect_content=''
disable_notification=1
parse_mode='markdown'
soob=tg_send_message(id_group, text,client_message_id, opts, parse_mode, disable_web_page_preview, protect_content, disable_notification)
Example: message editing with Telegram API
So, let’s send ourselves a message with an inline keyboard:

Next, edit the message text:

And edit the buttons:

Let’s try to edit a message with an image. To do this, send a message with an image and save the sent message ID. Read the detailed instructions on how to get the image URL here:

Now, let's edit the image and its description:

/*It’s convenient to define the parameters in a variable beforehand.*/
text='What package would you like to choose?'
opts = {"inline_keyboard": [[{"text": "Package 1","callback_data":1}, {"text": "Package 2","callback_data":2}]]}
/*Send message function*/
soob=tg_send_message(platform_id, text, None, opts)
/*Save the sent message ID*/
soob_id=soob['result']['message_id']
/*Edit the message*/
text='What package are you interested in?'
tg_edit_message_text(platform_id, soob_id, text, opts)
/*Edit the inline keyboard*/
opts = {"inline_keyboard": [[{"text": "Standard","callback_data":1}, {"text": "Premium","callback_data":2}]]}
tg_edit_message_reply_markup(platform_id, soob_id, opts)
/*Send image with the decription*/
soob=tg_send_photo(platform_id, "AgACAgIAAxkBAAIPpWO4T7jhOgYHq6uR8rjnq9rIvBs-AAJlwDEb5fHASaGdhzgWjyn7AQADAgADeAADLQQ", "This is an image")
/*Save the sent message ID*/
soob_id=soob['result']['message_id']
/*Edit the image*/
media='{"type": "photo", "media": "AgACAgIAAxkBAAIPrmO4UiH7Tazqn-3IbFVzPKNsVEZmAAJ1wDEb5fHASWcNXKah-egvAQADAgADeQADLQQ"}'
tg_edit_message_media(platform_id, soob_id, media)
/*Edit the image description*/
tg_edit_message_caption(platform_id, soob_id, 'This is ME!')
Example: message copying with Telegram API
Let's send a message and save its ID.

And copy the previously sent message.

/*It’s convenient to define the parameters in a variable beforehand.*/
text='What package would you like to choose?'
opts = {"inline_keyboard": [[{"text": "Package 1","callback_data":1}, {"text": "Package 2","callback_data":2}]]}
/*Send message function*/
soob=tg_send_message(platform_id, text, None, opts)
/*Save the sent message ID*/
soob_id=soob['result']['message_id']
/*Copy the sent message*/
tg_copy_message('5081438490', '1840834360', soob_id, None, opts, None, None, 1)