Update content of files

This commit is contained in:
GitHub Action 2023-04-25 18:44:50 +00:00
parent 873e885cf4
commit accf8b057e
13 changed files with 24 additions and 17 deletions

View file

@ -124,10 +124,15 @@ See <a href="#email-verification">here »</a> for more info on the verification
<li><a href="/constructor/auth.sentCodeTypeEmailCode">auth.sentCodeTypeEmailCode</a>: the code was sent to the configured login email.</li>
<li><a href="/constructor/auth.sentCodeTypeFragmentSms">auth.sentCodeTypeFragmentSms</a>: the code was sent via <a href="https://fragment.com">fragment.com</a>: open the specified <code>url</code> to log into the <a href="https://fragment.com">Fragment</a> platform with your wallet and view the code. </li>
<li><a href="/constructor/auth.sentCodeTypeApp">auth.sentCodeTypeApp</a>: the code was sent as a Telegram service notification to all other logged-in sessions.</li>
<li><a href="/constructor/auth.sentCodeTypeFirebaseSms">auth.sentCodeTypeFirebaseSms</a>: only for official apps, only used if the <a href="/constructor/codeSettings">codeSettings</a>.<code>allow_firebase</code> flag is set. <ul>
<li>On Android, the client must pass <a href="/constructor/auth.sentCodeTypeFirebaseSms">auth.sentCodeTypeFirebaseSms</a> to the <a href="https://developer.android.com/training/safetynet/attestation">SafetyNet Attestation API</a>, and then pass the obtained JWS object to <a href="/method/auth.requestFirebaseSms">auth.requestFirebaseSms</a>.<code>safety_net_token</code>, along with the <code>phone_number</code> and the <code>phone_code_hash</code>.<br>
<li><a href="/constructor/auth.sentCodeTypeFirebaseSms">auth.sentCodeTypeFirebaseSms</a>: firebase login flow, only for official apps. <ul>
<li>On Android, can only be received if the <a href="/constructor/codeSettings">codeSettings</a>.<code>allow_firebase</code> flag is set.<br>
The client must pass the received <a href="/constructor/auth.sentCodeTypeFirebaseSms">auth.sentCodeTypeFirebaseSms</a>.<code>nonce</code> to the <a href="https://developer.android.com/training/safetynet/attestation">SafetyNet Attestation API</a>, and then pass the obtained JWS object to <a href="/method/auth.requestFirebaseSms">auth.requestFirebaseSms</a>.<code>safety_net_token</code>, along with the <code>phone_number</code> and the <code>phone_code_hash</code>.<br>
If the method returns <a href="/constructor/boolTrue">boolTrue</a>, the code will be sent via SMS; otherwise, the <code>next_type</code> authentication method must be used, with <a href="/method/auth.resendCode">auth.resendCode</a>.</li>
<li>On iOS, can only be received if the device token for Apple Push was passed to <a href="/constructor/codeSettings">codeSettings</a>.<code>token</code>.<br>
The client then waits for a new push notification for <a href="/constructor/auth.sentCodeTypeFirebaseSms">auth.sentCodeTypeFirebaseSms</a>.<code>push_timeout</code> seconds.<br>
If a push notification isn't received within <code>push_timeout</code> seconds, the <code>next_type</code> authentication method must be used, with <a href="/method/auth.resendCode">auth.resendCode</a>.<br>
If a push notification is received with <code>receipt</code> and <code>ios_push_secret</code> fields, and the value of the <code>receipt</code> field matches <a href="/constructor/codeSettings">codeSettings</a>.<code>receipt</code>, the value of <code>ios_push_secret</code> is passed to <a href="/method/auth.requestFirebaseSms">auth.requestFirebaseSms</a>.<code>ios_push_secret</code>, along with the <code>phone_number</code> and the <code>phone_code_hash</code>.<br>
If the method returns <a href="/constructor/boolTrue">boolTrue</a>, the code will be sent via SMS; otherwise, the <code>next_type</code> authentication method must be used, with <a href="/method/auth.resendCode">auth.resendCode</a>.</li>
<li>On iOS, the <code>receipt</code> and <code>push_timeout</code> fields of <a href="/constructor/auth.sentCodeTypeFirebaseSms">auth.sentCodeTypeFirebaseSms</a> are populated, </li>
</ul>
</li>
<li><a href="/constructor/auth.sentCodeTypeSms">auth.sentCodeTypeSms</a>: the code was sent via SMS.</li>

View file

@ -192,7 +192,7 @@ If the client has already encountered an app with this short name from the same
The bot can, however, write to the user directly if it already has a chat with the user or if it requested permission via <code>request_write_access</code> and the user granted it with <code>write_allowed</code>. </p>
<h3><a class="anchor" href="#theme-parameters" id="theme-parameters" name="theme-parameters"><i class="anchor-icon"></i></a>Theme parameters</h3>
<p>Bot web apps can be themed according to the following theme parameters, passed as a JSON object to the <code>theme_params</code> parameter of the <a href="/method/messages.requestSimpleWebView">messages.requestSimpleWebView</a> and <a href="/method/messages.requestWebView">messages.requestWebView</a> methods. </p>
<p>This JSON object has the the following keys, containing color theme information (hex string, RGB, no alpha) to pass to the web app:</p>
<p>This JSON object has the following keys, containing color theme information (hex string, RGB, no alpha) to pass to the web app:</p>
<ul>
<li><code>bg_color</code> - Background color</li>
<li><code>secondary_bg_color</code> - Secondary background color</li>

View file

@ -103,7 +103,7 @@ Clients can also receive <a href="/constructor/updateDialogFilters">updateDialog
<a href='/method/folders.editPeerFolders'>folders.editPeerFolders</a>#6847d0ab folder_peers:<a href='/type/Vector%20t'>Vector</a>&lt;<a href='/type/InputFolderPeer'>InputFolderPeer</a>&gt; = <a href='/type/Updates'>Updates</a>;
<a href='/method/folders.deleteFolder'>folders.deleteFolder</a>#1c295881 folder_id:<a href='/type/int'>int</a> = <a href='/type/Updates'>Updates</a>;</code></pre>
<p>API peer folders are typically used only by <a href="https://telegram.org/blog/archive-and-new-design">archived chats</a>, and are really handy for distinguishing groups of peers, since most peer-related constructors (updates, chat info) will contain the <code>folder_id</code> assigned the the specified chat. </p>
<p>API peer folders are typically used only by <a href="https://telegram.org/blog/archive-and-new-design">archived chats</a>, and are really handy for distinguishing groups of peers, since most peer-related constructors (updates, chat info) will contain the <code>folder_id</code> assigned the specified chat. </p>
<p>In Telegram apps, API peer folders are used only to implement the chat archive, identified by <code>folder_id</code> <code>1</code>; all other peers are in <code>folder_id</code> <code>0</code> by default; no other <code>folder_id</code> is allowed at the moment.</p>
<ul>
<li><a href="/method/folders.editPeerFolders">folders.editPeerFolders</a> can be used to add and remove peers from peer folders.</li>

View file

@ -102,6 +102,7 @@
<li>Added <strong>via_chatlist</strong> parameter in <a href="/constructor/updateChannelParticipant">updateChannelParticipant</a></li>
<li>Added <strong>via_chatlist</strong> parameter in <a href="/constructor/chatInviteImporter">chatInviteImporter</a></li>
<li>Added <strong>flags</strong>, <strong>via_chatlist</strong> parameters in <a href="/constructor/channelAdminLogEventActionParticipantJoinByInvite">channelAdminLogEventActionParticipantJoinByInvite</a></li>
<li>Added <strong>my</strong> parameter in <a href="/constructor/messagePeerReaction">messagePeerReaction</a></li>
<li>Added <strong>flags</strong>, <strong>crypto_currency</strong>, <strong>crypto_amount</strong> parameters in <a href="/constructor/messageActionGiftPremium">messageActionGiftPremium</a></li>
<li>Added <strong>reset_available_period</strong>, <strong>reset_pending_date</strong> parameters, removed <strong>next_phone_login_date</strong> parameter in <a href="/constructor/auth.sentCodeTypeEmailCode">auth.sentCodeTypeEmailCode</a></li>
</ul>
@ -112,6 +113,7 @@
<a href="/constructor/updateChannelParticipant">updateChannelParticipant</a>#985d3abb flags:<a href="/type/%23">#</a> via_chatlist:flags.3?<a href="/constructor/true">true</a> channel_id:<a href="/type/long">long</a> date:<a href="/type/int">int</a> actor_id:<a href="/type/long">long</a> user_id:<a href="/type/long">long</a> prev_participant:flags.0?<a href="/type/ChannelParticipant">ChannelParticipant</a> new_participant:flags.1?<a href="/type/ChannelParticipant">ChannelParticipant</a> invite:flags.2?<a href="/type/ExportedChatInvite">ExportedChatInvite</a> qts:<a href="/type/int">int</a> = <a href="/type/Update">Update</a>;<br>
<a href="/constructor/chatInviteImporter">chatInviteImporter</a>#8c5adfd9 flags:<a href="/type/%23">#</a> requested:flags.0?<a href="/constructor/true">true</a> via_chatlist:flags.3?<a href="/constructor/true">true</a> user_id:<a href="/type/long">long</a> date:<a href="/type/int">int</a> about:flags.2?<a href="/type/string">string</a> approved_by:flags.1?<a href="/type/long">long</a> = <a href="/type/ChatInviteImporter">ChatInviteImporter</a>;
<a href="/constructor/channelAdminLogEventActionParticipantJoinByInvite">channelAdminLogEventActionParticipantJoinByInvite</a>#fe9fc158 flags:<a href="/type/%23">#</a> via_chatlist:flags.0?<a href="/constructor/true">true</a> invite:<a href="/type/ExportedChatInvite">ExportedChatInvite</a> = <a href="/type/ChannelAdminLogEventAction">ChannelAdminLogEventAction</a>;<br>
<a href="/constructor/messagePeerReaction">messagePeerReaction</a>#8c79b63c flags:<a href="/type/%23">#</a> big:flags.0?<a href="/constructor/true">true</a> unread:flags.1?<a href="/constructor/true">true</a> my:flags.2?<a href="/constructor/true">true</a> peer_id:<a href="/type/Peer">Peer</a> date:<a href="/type/int">int</a> reaction:<a href="/type/Reaction">Reaction</a> = <a href="/type/MessagePeerReaction">MessagePeerReaction</a>;
<a href="/constructor/messageActionGiftPremium">messageActionGiftPremium</a>#c83d6aec flags:<a href="/type/%23">#</a> currency:<a href="/type/string">string</a> amount:<a href="/type/long">long</a> months:<a href="/type/int">int</a> crypto_currency:flags.0?<a href="/type/string">string</a> crypto_amount:flags.0?<a href="/type/long">long</a> = <a href="/type/MessageAction">MessageAction</a>;<br>
<a href="/constructor/auth.sentCodeTypeEmailCode">auth.sentCodeTypeEmailCode</a>#f450f59b flags:<a href="/type/%23">#</a> apple_signin_allowed:flags.0?<a href="/constructor/true">true</a> google_signin_allowed:flags.1?<a href="/constructor/true">true</a> email_pattern:<a href="/type/string">string</a> length:<a href="/type/int">int</a> reset_available_period:flags.3?<a href="/type/int">int</a> reset_pending_date:flags.4?<a href="/type/int">int</a> = <a href="/type/auth.SentCodeType">auth.SentCodeType</a>;<br>
<a href="/constructor/dialogFilterChatlist">dialogFilterChatlist</a>#d64a04a8 flags:<a href="/type/%23">#</a> has_my_invites:flags.26?<a href="/constructor/true">true</a> id:<a href="/type/int">int</a> title:<a href="/type/string">string</a> emoticon:flags.25?<a href="/type/string">string</a> pinned_peers:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/InputPeer">InputPeer</a>&gt; include_peers:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/InputPeer">InputPeer</a>&gt; = <a href="/type/DialogFilter">DialogFilter</a>;<br>
@ -259,8 +261,8 @@ The current <a href="/api/auth#future-auth-tokens">future auth token</a> is now
Bots can now prompt the user to select and share a peer with the bot with <a href="/method/messages.sendBotRequestedPeer">messages.sendBotRequestedPeer</a>, by using a <a href="/constructor/keyboardButtonRequestPeer">keyboardButtonRequestPeer</a> bot button.<br>
Added support for <a href="/api/custom-emoji#emoji-categories">categorized custom emojis »</a>, a <a href="/method/messages.searchCustomEmoji">messages.searchCustomEmoji</a> method to look up <a href="/api/custom-emoji">custom emojis</a> by their corresponding UTF8 emoji and added <a href="/api/links#custom-emoji-stickerset-links">custom emoji stickerset deep links</a>.<br>
Also implemented synchronization of media autosave settings.</p>
<p>Most importantly, added support for Safetynet/Firebase SMS authentication, which is now mandatory when requesting SMS codes to log in or sign up to Telegram.<br>
Currently, only official apps can make use of Safetynet/Firebase SMS authentication: this means that only the official applications can be used to sign up to Telegram, or receive the login code via SMS/call. Third-party apps may log in using any of the other code delivery methods (Telegram codes, Fragment codes, email codes, <a href="/api/auth#future-auth-tokens">future auth tokens</a>).</p>
<p>Most importantly, added support for Firebase SMS authentication, which is now mandatory when requesting SMS codes to log in or sign up to Telegram.<br>
Currently, only official apps can make use of Firebase SMS authentication: this means that only the official applications can be used to sign up to Telegram, or receive the login code via SMS/call. Third-party apps may log in using any of the other code delivery methods (Telegram codes, Fragment codes, email codes, <a href="/api/auth#future-auth-tokens">future auth tokens</a>).</p>
<h4><a class="anchor" href="#schema-changes" id="schema-changes" name="schema-changes"><i class="anchor-icon"></i></a>Schema changes</h4>
<h5><a class="anchor" href="#new-methods" id="new-methods" name="new-methods"><i class="anchor-icon"></i></a>New Methods</h5>
<ul>

View file

@ -103,7 +103,7 @@ You can also attach an inline keyboard to the message using the <code>reply_mark
<a href='/constructor/updateNewMessage'>updateNewMessage</a>#1f2b0afd message:<a href='/type/Message'>Message</a> pts:<a href='/type/int'>int</a> pts_count:<a href='/type/int'>int</a> = <a href='/type/Update'>Update</a>;</code></pre>
<p>The user receives an <a href="/api/links#invoice-links">invoice deep link</a> or an <a href="/constructor/updateNewMessage">updateNewMessage</a> constructor from the bot, containing a <a href="/constructor/messageMediaInvoice">messageMediaInvoice</a> constructor with basic info about the product.</p>
<p>For invoice messages, the <a href="/constructor/message">message</a> will also have a <a href="/constructor/replyInlineMarkup">replyInlineMarkup</a> keyboard attached to it.
The the first button of the keyboard will always be a <a href="/constructor/keyboardButtonBuy">keyboardButtonBuy</a> button.</p>
The first button of the keyboard will always be a <a href="/constructor/keyboardButtonBuy">keyboardButtonBuy</a> button.</p>
<h4><a class="anchor" href="#22-getting-invoice-info-about-the-product" id="22-getting-invoice-info-about-the-product" name="22-getting-invoice-info-about-the-product"><i class="anchor-icon"></i></a>2.2 Getting invoice info about the product</h4>
<pre><code><a href='/constructor/inputInvoiceMessage'>inputInvoiceMessage</a>#c5b56859 peer:<a href='/type/InputPeer'>InputPeer</a> msg_id:<a href='/type/int'>int</a> = <a href='/type/InputInvoice'>InputInvoice</a>;
<a href='/constructor/inputInvoiceSlug'>inputInvoiceSlug</a>#c326caef slug:<a href='/type/string'>string</a> = <a href='/type/InputInvoice'>InputInvoice</a>;

View file

@ -51,7 +51,7 @@
<a href='/constructor/reactionCount'>reactionCount</a>#a3d1cb80 flags:<a href='/type/%23'>#</a> chosen_order:flags.0?<a href='/type/int'>int</a> reaction:<a href='/type/Reaction'>Reaction</a> count:<a href='/type/int'>int</a> = <a href='/type/ReactionCount'>ReactionCount</a>;
<a href='/constructor/messagePeerReaction'>messagePeerReaction</a>#8c79b63c flags:<a href='/type/%23'>#</a> big:flags.0?<a href='/constructor/true'>true</a> unread:flags.1?<a href='/constructor/true'>true</a> peer_id:<a href='/type/Peer'>Peer</a> date:<a href='/type/int'>int</a> reaction:<a href='/type/Reaction'>Reaction</a> = <a href='/type/MessagePeerReaction'>MessagePeerReaction</a>;
<a href='/constructor/messagePeerReaction'>messagePeerReaction</a>#8c79b63c flags:<a href='/type/%23'>#</a> big:flags.0?<a href='/constructor/true'>true</a> unread:flags.1?<a href='/constructor/true'>true</a> my:flags.2?<a href='/constructor/true'>true</a> peer_id:<a href='/type/Peer'>Peer</a> date:<a href='/type/int'>int</a> reaction:<a href='/type/Reaction'>Reaction</a> = <a href='/type/MessagePeerReaction'>MessagePeerReaction</a>;
<a href='/constructor/messageReactions'>messageReactions</a>#4f2b9479 flags:<a href='/type/%23'>#</a> min:flags.0?<a href='/constructor/true'>true</a> can_see_list:flags.2?<a href='/constructor/true'>true</a> results:<a href='/type/Vector%20t'>Vector</a>&lt;<a href='/type/ReactionCount'>ReactionCount</a>&gt; recent_reactions:flags.1?<a href='/type/Vector%20t'>Vector</a>&lt;<a href='/type/MessagePeerReaction'>MessagePeerReaction</a>&gt; = <a href='/type/MessageReactions'>MessageReactions</a>;

View file

@ -99,7 +99,7 @@ Its ID for main and testing endpoints can be seen in the <a href="https://github
<li><code>from_id</code> set to the peer of <code>@replies</code></li>
<li><code>peer_id</code> set to our own peer</li>
<li><code>fwd_from.saved_from_msg_id</code> set to the ID of the reply</li>
<li><code>fwd_from.from_id</code> set to the the peer that replied to us</li>
<li><code>fwd_from.from_id</code> set to the peer that replied to us</li>
<li><code>reply_to.reply_to_peer_id</code> set to the peer of the <a href="/api/discussion">discussion group</a></li>
<li><code>reply_to.reply_to_msg_id</code> set to the ID of our message</li>
<li><code>reply_to.reply_to_top_id</code> set to the <a href="/api/threads">thread ID</a></li>

View file

@ -243,7 +243,7 @@ After the next update, only HTTPS links will be allowed in <em>login_url</em> in
<h4><a class="anchor" href="#november-5-2021" id="november-5-2021" name="november-5-2021"><i class="anchor-icon"></i></a>November 5, 2021</h4>
<p><strong>Bot API 5.4</strong></p>
<ul>
<li>Added the the parameter <code>creates_join_request</code> to the methods <a href="/bots/api#createchatinvitelink">createChatInviteLink</a> and <a href="/bots/api#editchatinvitelink">editChatInviteLink</a> for managing chat invite links that create join requests (read more about this on our <a href="https://telegram.org/blog/shared-media-scrolling-calendar-join-requests-and-more#join-requests-for-groups-and-channels">blog</a>).</li>
<li>Added the parameter <code>creates_join_request</code> to the methods <a href="/bots/api#createchatinvitelink">createChatInviteLink</a> and <a href="/bots/api#editchatinvitelink">editChatInviteLink</a> for managing chat invite links that create join requests (read more about this on our <a href="https://telegram.org/blog/shared-media-scrolling-calendar-join-requests-and-more#join-requests-for-groups-and-channels">blog</a>).</li>
<li>Added the fields <code>creates_join_request</code> and <code>pending_join_request_count</code> to the class <a href="/bots/api#chatinvitelink">ChatInviteLink</a>.</li>
<li>Added the field <code>name</code> to the class <a href="/bots/api#chatinvitelink">ChatInviteLink</a> and the parameters <code>name</code> to the methods <a href="/bots/api#createchatinvitelink">createChatInviteLink</a> and <a href="/bots/api#editchatinvitelink">editChatInviteLink</a> for managing <a href="https://telegram.org/blog/shared-media-scrolling-calendar-join-requests-and-more#unique-names-for-invite-links">invite link names</a>.</li>
<li>Added updates about new requests to join the chat, represented by the class <a href="/bots/api#chatjoinrequest">ChatJoinRequest</a> and the field <em>chat_join_request</em> in the <a href="/bots/api#update">Update</a> class. The bot must be an administrator in the chat with the <em>can_invite_users</em> administrator right to receive these updates.</li>

View file

@ -8519,7 +8519,7 @@ No more than <strong>50</strong> results per query are allowed.</p>
</table>
<p><strong>Note:</strong> This will only work in Telegram versions released after 9 April, 2016. Older clients will ignore them.</p>
<h4><a class="anchor" href="#inlinequeryresultvoice" id="inlinequeryresultvoice" name="inlinequeryresultvoice"><i class="anchor-icon"></i></a>InlineQueryResultVoice</h4>
<p>Represents a link to a voice recording in an .OGG container encoded with OPUS. By default, this voice recording will be sent by the user. Alternatively, you can use <em>input_message_content</em> to send a message with the specified content instead of the the voice message.</p>
<p>Represents a link to a voice recording in an .OGG container encoded with OPUS. By default, this voice recording will be sent by the user. Alternatively, you can use <em>input_message_content</em> to send a message with the specified content instead of the voice message.</p>
<table class="table">
<thead>
<tr>

View file

@ -105,12 +105,12 @@
<tr>
<td><strong>token</strong></td>
<td style="text-align: center;"><a href="/mtproto/TL-combinators#conditional-fields">flags</a>.8?<a href="/type/string">string</a></td>
<td> </td>
<td>Used only by official iOS apps for Firebase auth: device token for apple push.</td>
</tr>
<tr>
<td><strong>app_sandbox</strong></td>
<td style="text-align: center;"><a href="/mtproto/TL-combinators#conditional-fields">flags</a>.8?<a href="/type/Bool">Bool</a></td>
<td> </td>
<td>Used only by official iOS apps for firebase auth: whether a sandbox-certificate will be used during transmission of the push notification.</td>
</tr>
</tbody>
</table>

View file

@ -94,7 +94,7 @@
<tr>
<td><strong>broadcast_post</strong></td>
<td style="text-align: center;"><a href="/mtproto/TL-combinators#conditional-fields">flags</a>.0?<a href="/type/int">int</a></td>
<td>If set, contains the ID of the channel post that started the the <a href="/api/threads">comment thread</a></td>
<td>If set, contains the ID of the channel post that started the <a href="/api/threads">comment thread</a></td>
</tr>
</tbody>
</table>

View file

@ -179,7 +179,7 @@
<tr>
<td><strong>private_forward_name</strong></td>
<td style="text-align: center;"><a href="/mtproto/TL-combinators#conditional-fields">flags</a>.16?<a href="/type/string">string</a></td>
<td>Anonymized text to be shown instead of the the user's name on forwarded messages</td>
<td>Anonymized text to be shown instead of the user's name on forwarded messages</td>
</tr>
<tr>
<td><strong>bot_group_admin_rights</strong></td>

View file

@ -191,7 +191,7 @@ iv = slice( password_hash, 32, 16 )</code></pre>
<p>The <em>passport_secret</em> can now be used to decrypt encrypted passport data stored on telegram servers:</p>
<h3><a class="anchor" href="#data-and-file-encryption" id="data-and-file-encryption" name="data-and-file-encryption"><i class="anchor-icon"></i></a>Data and File Encryption</h3>
<h4><a class="anchor" href="#encryption" id="encryption" name="encryption"><i class="anchor-icon"></i></a>Encryption</h4>
<p>To encrypt Telegram Passport data, the client generates a <em>data_secret</em> (a 32-byte number with the modulo 255 sum of bytes equal to 239). The the data is encrypted according to the following scheme:</p>
<p>To encrypt Telegram Passport data, the client generates a <em>data_secret</em> (a 32-byte number with the modulo 255 sum of bytes equal to 239). The data is encrypted according to the following scheme:</p>
<ul>
<li>
<p>Data is padded to a length that is divisible by 16 bytes. To achieve this, 32 to 255 bytes are added at the beginning, where the first byte always holds the number of added bytes and the rest are random.</p>