Skip to main content

messages.sendMessage

Sends a message to a chat

func (c *Client) MessagesSendMessage(ctx context.Context, request *MessagesSendMessageRequest) (UpdatesClass, error)

Calling this method

client.Run(ctx, func(ctx context.Context) error {
api := client.API()

res, err := api.MessagesSendMessage(ctx, &tg.MessagesSendMessageRequest{
// see Parameters
})
if err != nil {
return err
}
_ = res // UpdatesClass
return nil
})

Parameters

NameTypeRequiredDescription
NoWebpageboolSet this flag to disable generation of the webpage preview
SilentboolSend this message silently (no notifications for the receivers)
BackgroundboolSend this message as background message
ClearDraftboolClear the draft field
NoforwardsboolOnly for bots, disallows forwarding and saving of the messages, even if the destination chat doesn't have content protection enabled
UpdateStickersetsOrderboolWhether to move used stickersets to top, see here for more info on this flag »
InvertMediaboolIf set, any eventual webpage preview will be shown on top of the message instead of at the bottom.
AllowPaidFloodskipboolBots only: if set, allows sending up to 1000 messages per second, ignoring broadcasting limits for a fee of 0.1 Telegram Stars per message. The relevant Stars will be withdrawn from the bot's balance.
PeerInputPeerClassyesThe destination where the message will be sent
ReplyToInputReplyToClassIf set, indicates that the message should be sent in reply to the specified message or story. Also used to quote other messages.
MessagestringyesThe message
RandomIDint64yesUnique client message ID required to prevent message resending
ReplyMarkupReplyMarkupClassReply markup for sending bot buttons
Entities[]MessageEntityClassMessage entities for sending styled text
ScheduleDateintScheduled message date for scheduled messages
ScheduleRepeatPeriodintOnce sent, this message will be automatically re-scheduled to be re-sent again this many seconds in the future, see here » for more info on repeating scheduled messages.
SendAsInputPeerClassSend this message as the specified peer
QuickReplyShortcutInputQuickReplyShortcutClassAdd the message to the specified quick reply shortcut », instead.
Effectint64Specifies a message effect » to use for the message.
AllowPaidStarsint64For paid messages », specifies the amount of Telegram Stars the user has agreed to pay in order to send the message.
SuggestedPostSuggestedPostUsed to suggest a post to a channel, see here » for more info on the full flow.
RichMessageInputRichMessageClassRichMessage field of MessagesSendMessageRequest.

Returns

UpdatesClass

Possible errors

CodeTypeDescription
400ADMIN_RIGHTS_EMPTYThe chatAdminRights constructor passed in keyboardButtonRequestPeer.peer_type.user_admin_rights has no rights set (i.e. flags is 0).
406ALLOW_PAYMENT_REQUIREDThis peer only accepts paid messages »: this error is only emitted for older layers without paid messages support, so the client must be updated in order to use paid messages. .
400BALANCE_TOO_LOWThe transaction cannot be completed because the current Telegram Stars balance is too low.
400BOT_DOMAIN_INVALIDBot domain invalid.
400BOT_INVALIDThis is not a valid bot.
400BUSINESS_CONNECTION_INVALIDThe connection_id passed to the wrapping invokeWithBusinessConnection call is invalid.
400BUSINESS_PEER_INVALIDMessages can't be set to the specified peer through the current business connection.
400BUSINESS_PEER_USAGE_MISSINGYou cannot send a message to a user through a business connection if the user hasn't recently contacted us.
400BUTTON_COPY_TEXT_INVALIDThe specified keyboardButtonCopy.copy_text is invalid.
400BUTTON_DATA_INVALIDThe data of one or more of the buttons you provided is invalid.
400BUTTON_ID_INVALIDThe specified button ID is invalid.
400BUTTON_TYPE_INVALIDThe type of one or more of the buttons you provided is invalid.
400BUTTON_URL_INVALIDButton URL invalid.
400BUTTON_USER_INVALIDThe user_id passed to inputKeyboardButtonUserProfile is invalid!
400BUTTON_USER_PRIVACY_RESTRICTEDThe privacy setting of the user specified in a inputKeyboardButtonUserProfile button do not allow creating such a button.
400CHANNEL_INVALIDThe provided channel is invalid.
400CHANNEL_MONOFORUM_UNSUPPORTEDMonoforums do not support this feature.
406CHANNEL_PRIVATEYou haven't joined this channel/supergroup.
403CHAT_ADMIN_REQUIREDYou must be an admin in this chat to do this.
400CHAT_FORWARDS_RESTRICTEDYou can't forward messages from a protected chat.
403CHAT_GUEST_SEND_FORBIDDENYou join the discussion group before commenting, see here » for more info.
400CHAT_ID_INVALIDThe provided chat id is invalid.
400CHAT_RESTRICTEDYou can't send messages in this chat, you were restricted.
403CHAT_SEND_PLAIN_FORBIDDENYou can't send non-media (text) messages in this chat.
403CHAT_WRITE_FORBIDDENYou can't write in this chat.
400DOCUMENT_INVALIDThe specified document is invalid.
400EFFECT_CHAT_INVALID
400ENCRYPTION_DECLINEDThe secret chat was declined.
400ENTITIES_TOO_LONGYou provided too many styled message entities.
400ENTITY_BOUNDS_INVALIDA specified entity offset or length is invalid, see here » for info on how to properly compute the entity offset/length.
400ENTITY_MENTION_USER_INVALIDYou mentioned an invalid user.
400FROM_MESSAGE_BOT_DISABLEDBots can't use fromMessage min constructors.
400INPUT_USER_DEACTIVATEDThe specified user was deleted.
400MESSAGE_EMPTYThe provided message is empty.
400MESSAGE_TOO_LONGThe provided message is too long.
400MSG_ID_INVALIDInvalid message ID provided.
500MSG_WAIT_FAILEDA waiting call returned an error.
406PAYMENT_UNSUPPORTEDA detailed description of the error will be received separately as described here ».
404PEER_ID_INVALIDThe provided peer id is invalid.
400PEER_TYPES_INVALIDThe passed keyboardButtonSwitchInline.peer_types field is invalid.
400PINNED_DIALOGS_TOO_MUCHToo many pinned dialogs.
400POLL_OPTION_INVALIDInvalid poll option provided.
403PREMIUM_ACCOUNT_REQUIREDA premium account is required to execute this action.
406PRIVACY_PREMIUM_REQUIREDYou need a Telegram Premium subscription to send a message to this user.
400QUICK_REPLIES_BOT_NOT_ALLOWEDQuick replies cannot be used by bots.
400QUICK_REPLIES_TOO_MUCHA maximum of appConfig.quick_replies_limit shortcuts may be created, the limit was reached.
400QUOTE_TEXT_INVALIDThe specified reply_to.quote_text field is invalid.
500RANDOM_ID_DUPLICATEYou provided a random ID that was already used.
400REPLY_MARKUP_INVALIDThe provided reply markup is invalid.
400REPLY_MARKUP_TOO_LONGThe specified reply_markup is too long.
400REPLY_MESSAGES_TOO_MUCHEach shortcut can contain a maximum of appConfig.quick_reply_messages_limit messages, the limit was reached.
400REPLY_MESSAGE_ID_INVALIDThe specified reply-to message ID is invalid.
400REPLY_TO_INVALIDThe specified reply_to field is invalid.
400REPLY_TO_MONOFORUM_PEER_INVALIDThe specified inputReplyToMonoForum.monoforum_peer_id is invalid.
400REPLY_TO_USER_INVALIDThe replied-to user is invalid.
400SCHEDULE_BOT_NOT_ALLOWEDBots cannot schedule messages.
400SCHEDULE_DATE_TOO_LATEYou can't schedule a message this far in the future.
400SCHEDULE_STATUS_PRIVATECan't schedule until user is online, if the user's last seen timestamp is hidden by their privacy settings.
400SCHEDULE_TOO_MUCHThere are too many scheduled messages.
400SEND_AS_PEER_INVALIDYou can't send messages as the specified peer.
400STORIES_NEVER_CREATEDThis peer hasn't ever posted any stories.
400STORY_ID_INVALIDThe specified story ID is invalid.
400SUGGESTED_POST_AMOUNT_INVALIDThe specified price for the suggested post is invalid.
400SUGGESTED_POST_PEER_INVALIDYou cannot send suggested posts to non-monoforum peers.
406TOPIC_CLOSEDThis topic was closed, you can't send messages to it anymore.
406TOPIC_DELETEDThe specified topic was deleted.
400USER_BANNED_IN_CHANNELYou're banned from sending messages in supergroups/channels.
403USER_IS_BLOCKEDYou were blocked by this user.
400USER_IS_BOTBots can't send messages to other bots.
400WC_CONVERT_URL_INVALIDWC convert URL invalid.
400YOU_BLOCKED_USERYou blocked this user.

References