mirror of
https://github.com/LonamiWebs/Telethon.git
synced 2024-11-22 09:26:37 +03:00
57 lines
15 KiB
HTML
57 lines
15 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
|
<title>SendMediaRequest</title>
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
<link id="style" href="../../css/docs.dark.css" rel="stylesheet">
|
|
<script>
|
|
document.getElementById("style").href = "../../css/docs."
|
|
+ (localStorage.getItem("theme") || "light")
|
|
+ ".css";
|
|
</script>
|
|
<link href="https://fonts.googleapis.com/css?family=Nunito|Source+Code+Pro"
|
|
rel="stylesheet">
|
|
</head>
|
|
<body>
|
|
<div id="main_div"><ul class="horizontal"><li><a href="../../index.html">API</a></li><img src="../../img/arrow.svg" alt="/" /><li><a href="../index.html">Methods</a></li><img src="../../img/arrow.svg" alt="/" /><li><a href="index.html">Messages</a></li><img src="../../img/arrow.svg" alt="/" /><li><a href="send_media.html">SendMediaRequest</a></li></ul><h1>SendMediaRequest</h1><p><strong>Both users and bots</strong> can use this request. <a href="#examples">See code examples.</a></p><pre>---functions---
|
|
messages.sendMedia#7852834e flags:# silent:flags.5?<a href="../../index.html#true">true</a> background:flags.6?<a href="../../index.html#true">true</a> clear_draft:flags.7?<a href="../../index.html#true">true</a> noforwards:flags.14?<a href="../../index.html#true">true</a> update_stickersets_order:flags.15?<a href="../../index.html#true">true</a> invert_media:flags.16?<a href="../../index.html#true">true</a> allow_paid_floodskip:flags.19?<a href="../../index.html#true">true</a> peer:<a href="../../types/input_peer.html">InputPeer</a> reply_to:flags.0?<a href="../../types/input_reply_to.html">InputReplyTo</a> media:<a href="../../types/input_media.html">InputMedia</a> message:<a href="../../index.html#string">string</a> random_id:<a href="../../index.html#long">long</a> reply_markup:flags.2?<a href="../../types/reply_markup.html">ReplyMarkup</a> entities:flags.3?<a href="../../index.html#vector">Vector</a><<a href="../../types/message_entity.html">MessageEntity</a>> schedule_date:flags.10?<a href="../../index.html#date">date</a> send_as:flags.13?<a href="../../types/input_peer.html">InputPeer</a> quick_reply_shortcut:flags.17?<a href="../../types/input_quick_reply_shortcut.html">InputQuickReplyShortcut</a> effect:flags.18?<a href="../../index.html#long">long</a> = <a href="../../types/updates.html">Updates</a></pre><button onclick="cp('from telethon.tl.functions.messages import SendMediaRequest');">Copy import to the clipboard</button><h3>Returns</h3><table><tr><td><a href="../../types/updates.html">Updates</a></td></tr></table><p>This type can be an instance of either:</p><table><tr><td><a href="../../constructors/update_short.html">UpdateShort</a></td><td><a href="../../constructors/update_short_chat_message.html">UpdateShortChatMessage</a></td></tr><tr><td><a href="../../constructors/update_short_message.html">UpdateShortMessage</a></td><td><a href="../../constructors/update_short_sent_message.html">UpdateShortSentMessage</a></td></tr><tr><td><a href="../../constructors/updates.html">Updates</a></td><td><a href="../../constructors/updates_combined.html">UpdatesCombined</a></td></tr><tr><td><a href="../../constructors/updates_too_long.html">UpdatesTooLong</a></td></tr></table><h3>Parameters</h3><table><tr><td><b>peer</b></td><td style="text-align:center"><a href="../../types/input_peer.html">InputPeer</a></td><td>Anything entity-like will work if the library can find its <code>Input</code> version (e.g., usernames, <code>Peer</code>, <code>User</code> or <code>Channel</code> objects, etc.).</td></tr><tr><td><b>media</b></td><td style="text-align:center"><a href="../../types/input_media.html">InputMedia</a></td><td></td></tr><tr><td><b>message</b></td><td style="text-align:center"><a href="../../index.html#string">string</a></td><td></td></tr><tr><td><b>silent</b></td><td style="text-align:center"><a href="../../index.html#true">flag</a></td><td>This argument defaults to <code>None</code> and can be omitted.</td></tr><tr><td><b>background</b></td><td style="text-align:center"><a href="../../index.html#true">flag</a></td><td>This argument defaults to <code>None</code> and can be omitted.</td></tr><tr><td><b>clear_draft</b></td><td style="text-align:center"><a href="../../index.html#true">flag</a></td><td>This argument defaults to <code>None</code> and can be omitted.</td></tr><tr><td><b>noforwards</b></td><td style="text-align:center"><a href="../../index.html#true">flag</a></td><td>This argument defaults to <code>None</code> and can be omitted.</td></tr><tr><td><b>update_stickersets_order</b></td><td style="text-align:center"><a href="../../index.html#true">flag</a></td><td>This argument defaults to <code>None</code> and can be omitted.</td></tr><tr><td><b>invert_media</b></td><td style="text-align:center"><a href="../../index.html#true">flag</a></td><td>This argument defaults to <code>None</code> and can be omitted.</td></tr><tr><td><b>allow_paid_floodskip</b></td><td style="text-align:center"><a href="../../index.html#true">flag</a></td><td>This argument defaults to <code>None</code> and can be omitted.</td></tr><tr><td><b>reply_to</b></td><td style="text-align:center"><a href="../../types/input_reply_to.html">InputReplyTo</a></td><td>This argument defaults to <code>None</code> and can be omitted.</td></tr><tr><td><b>random_id</b></td><td style="text-align:center"><a href="../../index.html#long">long</a></td><td>If left unspecified, it will be inferred automatically.</td></tr><tr><td><b>reply_markup</b></td><td style="text-align:center"><a href="../../types/reply_markup.html">ReplyMarkup</a></td><td>This argument defaults to <code>None</code> and can be omitted.</td></tr><tr><td><b>entities</b></td><td style="text-align:center"><a href="../../types/message_entity.html">MessageEntity</a></td><td>This argument defaults to <code>None</code> and can be omitted. Otherwise, a <span class="tooltip" title="Any iterable that supports len() will work too">list</span> must be supplied.</td></tr><tr><td><b>schedule_date</b></td><td style="text-align:center"><a href="../../index.html#date">date</a></td><td>This argument defaults to <code>None</code> and can be omitted.</td></tr><tr><td><b>send_as</b></td><td style="text-align:center"><a href="../../types/input_peer.html">InputPeer</a></td><td>This argument defaults to <code>None</code> and can be omitted. Anything entity-like will work if the library can find its <code>Input</code> version (e.g., usernames, <code>Peer</code>, <code>User</code> or <code>Channel</code> objects, etc.).</td></tr><tr><td><b>quick_reply_shortcut</b></td><td style="text-align:center"><a href="../../types/input_quick_reply_shortcut.html">InputQuickReplyShortcut</a></td><td>This argument defaults to <code>None</code> and can be omitted.</td></tr><tr><td><b>effect</b></td><td style="text-align:center"><a href="../../index.html#long">long</a></td><td>This argument defaults to <code>None</code> and can be omitted.</td></tr></table><h1>Known RPC errors</h1><p>This request can cause 45 known errors:</p><table><tr><td><code>BotPaymentsDisabledError</code></td><td>This method can only be run by a bot.</td></tr><tr><td><code>BotPollsDisabledError</code></td><td>You cannot create polls under a bot account.</td></tr><tr><td><code>BroadcastPublicVotersForbiddenError</code></td><td>You cannot broadcast polls where the voters are public.</td></tr><tr><td><code>ChannelInvalidError</code></td><td>Invalid channel object. Make sure to pass the right types, for instance making sure that the request is designed for channels or otherwise look for a different one more suited.</td></tr><tr><td><code>ChannelPrivateError</code></td><td>The channel specified is private and you lack permission to access it. Another reason may be that you were banned from it.</td></tr><tr><td><code>ChatAdminRequiredError</code></td><td>Chat admin privileges are required to do that in the specified chat (for example, to send a message in a channel which is not yours), or invalid permissions used for the channel or group.</td></tr><tr><td><code>ChatSendMediaForbiddenError</code></td><td>You can't send media in this chat.</td></tr><tr><td><code>ChatWriteForbiddenError</code></td><td>You can't write in this chat.</td></tr><tr><td><code>CurrencyTotalAmountInvalidError</code></td><td>The total amount of all prices is invalid.</td></tr><tr><td><code>EmoticonInvalidError</code></td><td>The specified emoticon cannot be used or was not a emoticon.</td></tr><tr><td><code>EntityBoundsInvalidError</code></td><td>Some of provided entities have invalid bounds (length is zero or out of the boundaries of the string).</td></tr><tr><td><code>ExternalUrlInvalidError</code></td><td>External URL invalid.</td></tr><tr><td><code>FilePartsInvalidError</code></td><td>The number of file parts is invalid.</td></tr><tr><td><code>FilePartLengthInvalidError</code></td><td>The length of a file part is invalid.</td></tr><tr><td><code>FileReferenceEmptyError</code></td><td>The file reference must exist to access the media and it cannot be empty.</td></tr><tr><td><code>FileReferenceExpiredError</code></td><td>The file reference has expired and is no longer valid or it belongs to self-destructing media and cannot be resent.</td></tr><tr><td><code>GameBotInvalidError</code></td><td>You cannot send that game with the current bot.</td></tr><tr><td><code>InputUserDeactivatedError</code></td><td>The specified user was deleted.</td></tr><tr><td><code>MediaCaptionTooLongError</code></td><td>The caption is too long.</td></tr><tr><td><code>MediaEmptyError</code></td><td>The provided media object is invalid or the current account may not be able to send it (such as games as users).</td></tr><tr><td><code>PaymentProviderInvalidError</code></td><td>The payment provider was not recognised or its token was invalid.</td></tr><tr><td><code>PeerIdInvalidError</code></td><td>An invalid Peer was used. Make sure to pass the right peer type and that the value is valid (for instance, bots cannot start conversations).</td></tr><tr><td><code>PhotoExtInvalidError</code></td><td>The extension of the photo is invalid.</td></tr><tr><td><code>PhotoInvalidDimensionsError</code></td><td>The photo dimensions are invalid (hint: `pip install pillow` for `send_file` to resize images).</td></tr><tr><td><code>PhotoSaveFileInvalidError</code></td><td>The photo you tried to send cannot be saved by Telegram. A reason may be that it exceeds 10MB. Try resizing it locally.</td></tr><tr><td><code>PollAnswersInvalidError</code></td><td>The poll did not have enough answers or had too many.</td></tr><tr><td><code>PollOptionDuplicateError</code></td><td>A duplicate option was sent in the same poll.</td></tr><tr><td><code>PollQuestionInvalidError</code></td><td>The poll question was either empty or too long.</td></tr><tr><td><code>PostponedTimeoutError</code></td><td>The postponed call has timed out.</td></tr><tr><td><code>QuizCorrectAnswersEmptyError</code></td><td>A quiz must specify one correct answer.</td></tr><tr><td><code>QuizCorrectAnswersTooMuchError</code></td><td>There can only be one correct answer.</td></tr><tr><td><code>QuizCorrectAnswerInvalidError</code></td><td>The correct answer is not an existing answer.</td></tr><tr><td><code>QuizMultipleInvalidError</code></td><td>A poll cannot be both multiple choice and quiz.</td></tr><tr><td><code>RandomIdDuplicateError</code></td><td>You provided a random ID that was already used.</td></tr><tr><td><code>ScheduleDateTooLateError</code></td><td>The date you tried to schedule is too far in the future (last known limit of 1 year and a few hours).</td></tr><tr><td><code>ScheduleTooMuchError</code></td><td>You cannot schedule more messages in this chat (last known limit of 100 per chat).</td></tr><tr><td><code>StorageCheckFailedError</code></td><td>Server storage check failed.</td></tr><tr><td><code>TimeoutError</code></td><td>A timeout occurred while fetching data from the worker.</td></tr><tr><td><code>TopicDeletedError</code></td><td>The topic was deleted.</td></tr><tr><td><code>UserBannedInChannelError</code></td><td>You're banned from sending messages in supergroups/channels.</td></tr><tr><td><code>UserIsBlockedError</code></td><td>User is blocked.</td></tr><tr><td><code>UserIsBotError</code></td><td>Bots can't send messages to other bots.</td></tr><tr><td><code>VideoContentTypeInvalidError</code></td><td>The video content type is not supported with the given parameters (i.e. supports_streaming).</td></tr><tr><td><code>WebpageCurlFailedError</code></td><td>Failure while fetching the webpage with cURL.</td></tr><tr><td><code>WebpageMediaEmptyError</code></td><td>Webpage media empty.</td></tr></table><p>You can import these from <code>telethon.errors</code>.</p><h1 id="examples">Example</h1><p>Please refer to the documentation of <a href="https://docs.telethon.dev/en/stable/modules/client.html#telethon.client.uploads.UploadMethods.send_file"><code>client.send_file()</code></a> to learn about the parameters and see several code examples on how to use it.</p><p>The method above is the recommended way to do it. If you need more control over the parameters or want to learn how it is implemented, open the details by clicking on the "Details" text.</p><details><pre><strong>from</strong> telethon.sync <strong>import</strong> TelegramClient
|
|
<strong>from</strong> telethon <strong>import</strong> functions, types
|
|
|
|
<strong>with</strong> TelegramClient(name, api_id, api_hash) <strong>as</strong> client:
|
|
result = client(functions.messages.SendMediaRequest(
|
|
peer=<em>'username'</em>,
|
|
media=types.InputMediaUploadedPhoto(
|
|
file=client.upload_file(<em>'/path/to/file.jpg'</em>),
|
|
spoiler=<strong>True</strong>,
|
|
stickers=[types.InputDocument(
|
|
id=-12398745604826,
|
|
access_hash=-12398745604826,
|
|
file_reference=<em>b'arbitrary\x7f data \xfa here'</em>
|
|
)],
|
|
ttl_seconds=42
|
|
),
|
|
message=<em>'Hello there!'</em>,
|
|
noforwards=<strong>True</strong>,
|
|
update_stickersets_order=<strong>True</strong>,
|
|
invert_media=<strong>True</strong>,
|
|
allow_paid_floodskip=<strong>True</strong>,
|
|
reply_to=types.InputReplyToMessage(
|
|
reply_to_msg_id=42,
|
|
top_msg_id=42,
|
|
reply_to_peer_id=<em>'username'</em>,
|
|
quote_text=<em>'some string here'</em>,
|
|
quote_entities=[types.MessageEntityUnknown(
|
|
offset=42,
|
|
length=42
|
|
)],
|
|
quote_offset=42
|
|
),
|
|
schedule_date=datetime.datetime(2018, 6, 25),
|
|
send_as=<em>'username'</em>,
|
|
quick_reply_shortcut=types.InputQuickReplyShortcut(
|
|
shortcut=<em>'some string here'</em>
|
|
),
|
|
effect=-12398745604826
|
|
))
|
|
print(result.stringify())</pre></details><textarea id="c" class="invisible"></textarea><script>function cp(t){var c=document.getElementById("c");c.value=t;c.select();try{document.execCommand("copy")}catch(e){}}</script></div><script>prependPath = "../../";</script><script src="../../js/search.js"></script></body></html> |