2017-01-02 19:50:37 +01:00
---
2017-01-19 23:02:27 +01:00
title: messages.sendMedia
description: messages.sendMedia parameters, return type and example
2017-01-02 19:50:37 +01:00
---
2017-01-19 23:02:27 +01:00
## Method: messages.sendMedia
2017-01-02 19:50:37 +01:00
[Back to methods index ](index.md )
### Parameters:
| Name | Type | Required |
2017-08-20 11:05:56 +02:00
|----------|---------------|----------|
2017-01-02 19:50:37 +01:00
|broadcast|[Bool](../types/Bool.md) | Optional|
2017-03-11 19:54:51 +01:00
|peer|[InputPeer](../types/InputPeer.md) | Yes|
2017-01-02 19:50:37 +01:00
|reply\_to\_msg\_id|[int](../types/int.md) | Optional|
2017-03-11 19:54:51 +01:00
|media|[InputMedia](../types/InputMedia.md) | Yes|
2017-01-02 19:50:37 +01:00
|reply\_markup|[ReplyMarkup](../types/ReplyMarkup.md) | Optional|
### Return type: [Updates](../types/Updates.md)
2017-08-28 12:44:50 +02:00
### Can bots use this method: **YES**
### Errors this method can return:
| Error | Description |
|----------|---------------|
|FILE_PARTS_INVALID|The number of file parts is invalid||MEDIA_CAPTION_TOO_LONG|The caption is too long||MEDIA_EMPTY|The provided media object is invalid||PEER_ID_INVALID|The provided peer id is invalid||PHOTO_EXT_INVALID|The extension of the photo is invalid||STORAGE_CHECK_FAILED|Server storage check failed||WEBPAGE_CURL_FAILED|Failure while fetching the webpage with cURL|
2017-01-02 19:50:37 +01:00
### Example:
```
$MadelineProto = new \danog\MadelineProto\API();
2017-04-10 13:49:32 +02:00
if (isset($token)) { // Login as a bot
2017-06-19 18:56:47 +02:00
$MadelineProto->bot_login($token);
2017-01-02 19:50:37 +01:00
}
2017-04-10 13:49:32 +02:00
if (isset($number)) { // Login as a user
2017-01-02 19:50:37 +01:00
$sentCode = $MadelineProto->phone_login($number);
echo 'Enter the code you received: ';
$code = '';
for ($x = 0; $x < $sentCode['type']['length']; $x++) {
$code .= fgetc(STDIN);
}
$MadelineProto->complete_phone_login($code);
}
$Updates = $MadelineProto->messages->sendMedia(['broadcast' => Bool, 'peer' => InputPeer, 'reply_to_msg_id' => int, 'media' => InputMedia, 'reply_markup' => ReplyMarkup, ]);
2017-02-13 04:33:06 +01:00
```
2017-03-11 19:54:51 +01:00
2017-07-24 01:32:29 +02:00
Or, if you're using the [PWRTelegram HTTP API ](https://pwrtelegram.xyz ):
2017-07-23 16:11:02 +02:00
### As a bot:
POST/GET to `https://api.pwrtelegram.xyz/botTOKEN/madeline`
Parameters:
* method - messages.sendMedia
2017-07-23 16:40:54 +02:00
* params - `{"broadcast": Bool, "peer": InputPeer, "reply_to_msg_id": int, "media": InputMedia, "reply_markup": ReplyMarkup, }`
2017-07-23 16:11:02 +02:00
2017-07-23 16:34:36 +02:00
2017-07-23 16:11:02 +02:00
### As a user:
POST/GET to `https://api.pwrtelegram.xyz/userTOKEN/messages.sendMedia`
Parameters:
broadcast - Json encoded Bool
2017-08-20 19:09:52 +02:00
2017-07-23 16:11:02 +02:00
peer - Json encoded InputPeer
2017-08-20 19:09:52 +02:00
2017-07-23 16:11:02 +02:00
reply_to_msg_id - Json encoded int
2017-08-20 19:09:52 +02:00
2017-07-23 16:11:02 +02:00
media - Json encoded InputMedia
2017-08-20 19:09:52 +02:00
2017-07-23 16:11:02 +02:00
reply_markup - Json encoded ReplyMarkup
2017-07-23 16:40:54 +02:00
2017-07-23 16:11:02 +02:00
2017-08-20 19:09:52 +02:00
2017-03-11 19:54:51 +01:00
Or, if you're into Lua:
```
Updates = messages.sendMedia({broadcast=Bool, peer=InputPeer, reply_to_msg_id=int, media=InputMedia, reply_markup=ReplyMarkup, })
```
2017-04-10 13:49:32 +02:00
## Usage of reply_markup
You can provide bot API reply_markup objects here.