Use this method to copy messages of any kind. Service messages and invoice messages can't be copied. The method is analogous to the method forwardMessage, but the copied message doesn't have a link to the original message. Returns the MessageId of the sent message on success. This method support both normal and static use
| Name | Type | Description | Required |
|---|---|---|---|
| chat_id | int | string | array | Unique identifier for the target chat or username of the target channel (in the format @channelusername) | yes |
| from_chat_id | int | string | null | Unique identifier for the chat where the original message was sent (or channel username in the format @channelusername) | no |
| message_id | int | null | Message identifier in the chat specified in from_chat_id | no |
| caption | string | null | New caption for media, 0-1024 characters after entities parsing. If not specified, the original caption is kept | no |
| parse_mode | string | null | Mode for parsing entities in the new caption. See formatting options for more details. | no |
| caption_entities | messageEntity[] | null | stdClass[] | A JSON-serialized list of special entities that appear in the new caption, which can be specified instead of parse_mode | no |
| disable_notification | bool | null | Sends the message silently. Users will receive a notification with no sound. | no |
| protect_content | bool | null | Protects the contents of the sent message from forwarding and saving | no |
| reply_to_message_id | int | null | If the message is a reply, ID of the original message | no |
| allow_sending_without_reply | bool | null | Pass True, if the message should be sent even if the specified replied-to message is not found | no |
| reply_markup | inlineKeyboardMarkup | replyKeyboardMarkup | replyKeyboardRemove | forceReply | null | stdClass | Additional interface options. A JSON-serialized object for an inline keyboard, custom reply keyboard, instructions to remove reply keyboard or to force a reply from the user. | no |
| token | string | null | You can use this method on another bot with specify this parameter | no |
| forgot | bool | null | You can set to not receive request result, dont set it or pass null for turn it off | no |
| answer | bool | null | You can set to answer to webhook, dont set it or pass null for turn it off | no |
| message_thread_id | int | null | Unique identifier for the target message thread (topic) of the forum; for forum supergroups only | no |
Output : BPT\types\messageId | BPT\types\responseError | bool
Static or normal : Static
telegram::copyMessage(['chat_id' => int | string, 'from_chat_id' => int | string, 'message_id' => int, 'caption' => string, 'parse_mode' => string, 'caption_entities' => Array of MessageEntity, 'disable_notification' => bool, 'protect_content' => bool, 'reply_to_message_id' => int, 'allow_sending_without_reply' => bool, 'reply_markup' => InlineKeyboardMarkup | ReplyKeyboardMarkup | ReplyKeyboardRemove | ForceReply]);telegram::copyMessage(['chat_id' => int | string]);$this->copyMessage(['chat_id' => int | string, 'from_chat_id' => int | string, 'message_id' => int, 'caption' => string, 'parse_mode' => string, 'caption_entities' => Array of MessageEntity, 'disable_notification' => bool, 'protect_content' => bool, 'reply_to_message_id' => int, 'allow_sending_without_reply' => bool, 'reply_markup' => InlineKeyboardMarkup | ReplyKeyboardMarkup | ReplyKeyboardRemove | ForceReply]);$this->copyMessage(['chat_id' => int | string]);