diff --git a/data/web/blogfork.telegram.org/api/auth.html b/data/web/blogfork.telegram.org/api/auth.html
index c330e025d5..a5a31e34b2 100644
--- a/data/web/blogfork.telegram.org/api/auth.html
+++ b/data/web/blogfork.telegram.org/api/auth.html
@@ -207,16 +207,52 @@ After obtaining the ID token, call account
If the user cannot access their email address, an email reset may be requested using auth.resetLoginEmail. To change the login email after login, pass emailVerifyPurposeLoginChange as When user enters verification code, the auth.signIn method must be used to validate it and possibly sign user in. If the code was entered correctly, but the method returns auth.authorizationSignUpRequired, it means that account with this phone number doesn't exist yet: user needs to provide basic information, accept terms of service and then the new user registration method (auth.signUp) must be invoked. When trying to sign in using auth.signIn, an error 400 SESSION_PASSWORD_NEEDED may be returned, if the user has two-factor authentication enabled.
In this case, instructions for SRP 2FA authentication must be followed. To set up two-factor authorization on an already authorized account, follow the SRP 2FA authentication docs. When logging in, other logged-in sessions will receive an updateNewAuthorization update. If the user clicks on the Yes button, invoke account.changeAuthorizationSettings with the new session's If the user clicks on the No button, invoke account.resetAuthorization with the new session's If no action is taken by the user, the session will be autoconfirmed Telegram's servers will automatically invalidate login codes if they are sent by the user to another Telegram chat, either by forwarding them or by sending them inside of a message: however, clients should also manually and immediately invalidate login codes if the user attempts to screenshot or forward a message sent by the login notification service user (ID If an incoming message that is: Is either: account.invalidateSignInCodes should be invoked, passing the extracted login Each phone number is limited to only a certain amount of logins per day (e.g. 5, but this is subject to change) after which the API will return a FLOOD error until the next day. This might not be enough for testing the implementation of User Authorization flows in client applications. There are several reserved phone number prefixes for testing that your application handles redirects between DCs, sign up, sign in and 2FA flows correctly. These numbers are only available on Test DCs (their IP addresses for TCP transport are available in API development tools panel after api_id was obtained, URI format for HTTPS/Websocket transport). There are several reserved phone number prefixes for testing that your application handles redirects between DCs, sign up, sign in and 2FA flows correctly. These numbers are only available on Test DCs (their IP addresses for TCP transport are available in API development tools panel after api_id was obtained, URI format for HTTPS/WebSocket transport). If you wish to emulate an application of a user associated with DC number X, it is sufficient to specify the phone number as Do not store any important or private information in the messages of such test accounts; anyone can make use of the simplified authorization mechanism – and we periodically wipe all information stored there. Proceed with User Authorization flows in Production DCs only after you make sure everything works correctly on Test DCs first to avoid reaching flood limits. Telegram allows users to specify granular privacy settings, choosing which users can or can't interact with them in certain ways. Schema: Privacy rules indicate who can or can't do something and are specified by a PrivacyRule, and its input counterpart InputPrivacyRule. See the type page » for a full list of privacy rules and their descriptions. One privacy rule in particular should be mentioned separately, (input)privacyValueAllowCloseFriends: this privacy rule, which can be used only when posting stories, refers exclusively to a list of "close friends", that can be modified using contacts.editCloseFriends, passing the full close friend list as a list of user IDs: note that only users in the contact list (even without a phone number) » can be added to the close friends list. The current list of close friends can be checking which users in our contact list have the Schema: Privacy keys together with privacy rules » indicate what can or can't someone do and are specified by a PrivacyKey constructor, and its input counterpart InputPrivacyKey. See the type page » for a full list of privacy keys and their descriptions. Use account.getPrivacy to obtain the current set of rules associated to a key, and account.setPrivacy to change it. Changing the privacy settings will trigger an updatePrivacy, sent to all currently logged in sessions of the current account. Some global privacy settings can also be fetched and modified using account.getGlobalPrivacySettings and account.setGlobalPrivacySettings. Global privacy settings are represented by the globalPrivacySettings constructor, that contains the following parameters: Contains the link that must be used to open a named bot web app. Contains the link that must be used to open a direct link Mini App. Bots can offer users interactive HTML5 web apps to completely replace any website. Bots can offer users interactive HTML5 web apps to completely replace any website. Bots can choose the behavior of the menu button shown next to the text input field. How to handle channels, supergroups, gigagroups, basic groups, and what's the difference between them. Chats and channels may have a public username or a private invite link: private invite links may be further enhanced with per-user join requests. Chats and channels may have a public username or a private invite link: private invite links may be further enhanced with per-user join requests. Telegram users and channels can change the accent color and background pattern of their profile page and their messages! Used to fetch information about a named bot web app by its ID Used to fetch information about a direct link Mini App by its ID Bots can offer users interactive HTML5 web apps to completely replace any website. Contains information about a named bot web app. Contains information about a direct link Mini App. Used to fetch information about a named bot web app by its short name Used to fetch information about a direct link Mini App by its short name Telegram clients must handle special tg:// and t.me deep links encountered in messages, link entities and in other apps by registering OS handlers. Bots can offer users interactive HTML5 web apps to completely replace any website. Prompts the user to select and share a peer with the bot using messages.sendBotRequestedPeer Prompts the user to select and share one or more peers with the bot using messages.sendBotRequestedPeer Send a chosen peer, as requested by a keyboardButtonRequestPeer button. Send one or more chosen peers, as requested by a keyboardButtonRequestPeer button. Data from an opened reply keyboard bot web app was relayed to the bot that owns it (user side service message). Data from an opened reply keyboard bot mini app was relayed to the bot that owns it (user side service message). Clients should display a service message with the text Button to open a bot web app using messages.requestSimpleWebView, without sending user information to the web app. Button to open a bot mini app using messages.requestSimpleWebView, without sending user information to the web app. Can only be sent or received as part of a reply keyboard, use keyboardButtonWebView for inline keyboards. Bots can offer users interactive HTML5 web apps to completely replace any website. Data from an opened reply keyboard bot web app was relayed to the bot that owns it (bot side service message). Data from an opened reply keyboard bot mini app was relayed to the bot that owns it (bot side service message). Button to open a bot web app using messages.requestSimpleWebView, without sending user information to the web app. Button to open a bot mini app using messages.requestSimpleWebView, without sending user information to the web app. Can only be sent or received as part of a reply keyboard, use keyboardButtonWebView for inline keyboards. Bots can offer users interactive HTML5 web apps to completely replace any website. Telegram allows importing messages and media from foreign chat apps. Telegram allows importing messages and media from foreign chat apps. The Saved Messages chat allows users to bookmark messages and media: it's a personal cloud storage for any messages or media you may want to send or forward there. A message Specifies options that will be used to generate the link preview for the caption, or even a standalone link preview without an attached message. React to message. Starting from layer 159, the reaction will be sent from the peer specified using messages.saveDefaultSendAs. Change the default peer that should be used when sending messages to a specific group Change the default peer that should be used when sending messages, reactions, poll votes to a specific group Contains information about a named bot web app Contains information about a direct link Mini App Open a bot web app from a named bot web app deep link, sending over user information after user confirmation. Open a bot mini app from a direct Mini App deep link, sending over user information after user confirmation. After calling this method, until the user closes the webview, messages.prolongWebView must be called every 60 seconds. Bots can offer users interactive HTML5 web apps to completely replace any website. Returns found messages Search for messages. A pending voice message transcription » initiated with messages.transcribeAudio was updated. Telegram Premium is an optional subscription service that unlocks additional exclusive client-side and API-side features, while helping support the development of the app. The MTProto API has multiple configuration parameters that can be fetched with the appropriate methods. How to transcribe voice messages. Vote in a poll Vote in a poll Starting from layer 159, the vote will be sent from the peer specified using messages.saveDefaultSendAs. Telegram Premium is an optional subscription service that unlocks additional exclusive client-side and API-side features, while helping support the development of the app. Bots can offer users interactive HTML5 web apps to completely replace any website. How to create styled text with message entities Telegram allows users to set an emoticon or a custom emoji as status, to show next to their name in chats and profiles. Telegram clients must handle special tg:// and t.me deep links encountered in messages, link entities and in other apps by registering OS handlers. Bots can install attachment menu entries, offering conveniently accessible, versatile web apps. Bots can install attachment menu and side menu entries, offering conveniently accessible, versatile web apps. Returns installed attachment menu bot web apps » Returns installed attachment menu bot mini apps » Authorized to the current user's account through an unknown device. A new session logged into the current user's account through an unknown device. How to register a user's phone to start using the API. How to fetch results from large lists of objects. Telegram allows scheduling messages Telegram allows translating chat messages: Telegram Premium users may even enable real-time chat translation. Telegram users and channels can easily post and view stories through the API. Working with the blocklist. Set a custom wallpaper » in a specific private chat with another user. Telegram apps support generating, sharing and synchronizing chat backgrounds. Telegram allows pinning multiple messages on top of a specific chat. Telegram allows placing chats into folders, based on their type, mute status, or other custom criteria, thanks to folder blacklists and whitelists. How to handle admin permissions, granular bans and global permissions in channels, groups and supergroups. Telegram apps support generating, sharing and synchronizing chat backgrounds. How to handle admin permissions, granular bans and global permissions in channels, groups and supergroups.purpose
, following the exact same Google ID/Apple ID/email code login flow as above: on success, the account.verifyEmail method will return an account.emailVerified constructor.Sign in/sign up
+Sign in/sign up
2FA
Test Accounts
+Confirming login
+
+authorization#ad01d61d flags:# current:flags.0?true official_app:flags.1?true password_pending:flags.2?true encrypted_requests_disabled:flags.3?true call_requests_disabled:flags.4?true unconfirmed:flags.5?true hash:long device_model:string platform:string system_version:string api_id:int app_name:string app_version:string date_created:int date_active:int ip:string country:string region:string = Authorization;
+
+account.authorizations#4bff8ea0 authorization_ttl_days:int authorizations:Vector<Authorization> = account.Authorizations;
+
+updateNewAuthorization#8951abef flags:# unconfirmed:flags.0?true hash:long date:flags.0?int device:flags.0?string location:flags.0?string = Update;
+
+---functions---
+
+account.getAuthorizations#e320c158 = account.Authorizations;
+
+account.changeAuthorizationSettings#40f48462 flags:# confirmed:flags.3?true hash:long encrypted_requests_disabled:flags.0?Bool call_requests_disabled:flags.1?Bool = Bool;
+
+account.resetAuthorization#df77f3bc hash:long = Bool;
+If the unconfirmed
flag is set, clients should display a notification, asking the user if they recognize the session. hash
and the confirmed
flag set, confirming the specified session. hash
, logging out the specified session. authorization_autoconfirm_period
seconds after login (see the associated client configuration parameter »). Invalidating login codes
+777000
) containing login codes.
+
+777000
)-
characters (example implementation »)
+
+codes
(excluding any -
characeters).
+---functions---
+
+account.invalidateSignInCodes#ca8ae8ba codes:Vector<string> = Bool;
Test Accounts
99966XYYYY
, where YYYY are random numbers, when registering the user. A user like this would always get XXXXX as the login confirmation code (the DC number, repeated five times). Note that the value of X must be in the range of 1-3 because there are only 3 Test DCs. When the flood limit is reached for any particular test number, just choose another number (changing the YYYY random part).Page not found
+ Privacy
- Privacy rules
+
+inputPrivacyValueAllowContacts#d09e07b = InputPrivacyRule;
+inputPrivacyValueAllowAll#184b35ce = InputPrivacyRule;
+inputPrivacyValueAllowUsers#131cc67f users:Vector<InputUser> = InputPrivacyRule;
+inputPrivacyValueDisallowContacts#ba52007 = InputPrivacyRule;
+inputPrivacyValueDisallowAll#d66b66c9 = InputPrivacyRule;
+inputPrivacyValueDisallowUsers#90110467 users:Vector<InputUser> = InputPrivacyRule;
+inputPrivacyValueAllowChatParticipants#840649cf chats:Vector<long> = InputPrivacyRule;
+inputPrivacyValueDisallowChatParticipants#e94f0f86 chats:Vector<long> = InputPrivacyRule;
+inputPrivacyValueAllowCloseFriends#2f453e49 = InputPrivacyRule;
+
+privacyValueAllowContacts#fffe1bac = PrivacyRule;
+privacyValueAllowAll#65427b82 = PrivacyRule;
+privacyValueAllowUsers#b8905fb2 users:Vector<long> = PrivacyRule;
+privacyValueDisallowContacts#f888fa1a = PrivacyRule;
+privacyValueDisallowAll#8b73e763 = PrivacyRule;
+privacyValueDisallowUsers#e4621141 users:Vector<long> = PrivacyRule;
+privacyValueAllowChatParticipants#6b134e8e chats:Vector<long> = PrivacyRule;
+privacyValueDisallowChatParticipants#41c87565 chats:Vector<long> = PrivacyRule;
+privacyValueAllowCloseFriends#f7e8d89b = PrivacyRule;
+
+user#215c4438 flags:# self:flags.10?true contact:flags.11?true mutual_contact:flags.12?true deleted:flags.13?true bot:flags.14?true bot_chat_history:flags.15?true bot_nochats:flags.16?true verified:flags.17?true restricted:flags.18?true min:flags.20?true bot_inline_geo:flags.21?true support:flags.23?true scam:flags.24?true apply_min_photo:flags.25?true fake:flags.26?true bot_attach_menu:flags.27?true premium:flags.28?true attach_menu_enabled:flags.29?true flags2:# bot_can_edit:flags2.1?true close_friend:flags2.2?true stories_hidden:flags2.3?true stories_unavailable:flags2.4?true id:long access_hash:flags.0?long first_name:flags.1?string last_name:flags.2?string username:flags.3?string phone:flags.4?string photo:flags.5?UserProfilePhoto status:flags.6?UserStatus bot_info_version:flags.14?int restriction_reason:flags.18?Vector<RestrictionReason> bot_inline_placeholder:flags.19?string lang_code:flags.22?string emoji_status:flags.30?EmojiStatus usernames:flags2.0?Vector<Username> stories_max_id:flags2.5?int color:flags2.8?PeerColor profile_color:flags2.9?PeerColor = User;
+
+---functions---
+
+contacts.editCloseFriends#ba6705f0 id:Vector<long> = Bool;
+InputPrivacyRule constructors are passed as input to methods that accept privacy rules, while PrivacyRules are contained in constructors returned by the API. close_friend
flag set in the associated user constructor, see here » for more info on how to fetch the contact list.Privacy keys
+
+inputPrivacyKeyStatusTimestamp#4f96cb18 = InputPrivacyKey;
+inputPrivacyKeyChatInvite#bdfb0426 = InputPrivacyKey;
+inputPrivacyKeyPhoneCall#fabadc5f = InputPrivacyKey;
+inputPrivacyKeyPhoneP2P#db9e70d2 = InputPrivacyKey;
+inputPrivacyKeyForwards#a4dd4c08 = InputPrivacyKey;
+inputPrivacyKeyProfilePhoto#5719bacc = InputPrivacyKey;
+inputPrivacyKeyPhoneNumber#352dafa = InputPrivacyKey;
+inputPrivacyKeyAddedByPhone#d1219bdd = InputPrivacyKey;
+inputPrivacyKeyVoiceMessages#aee69d68 = InputPrivacyKey;
+inputPrivacyKeyAbout#3823cc40 = InputPrivacyKey;
+
+privacyKeyStatusTimestamp#bc2eab30 = PrivacyKey;
+privacyKeyChatInvite#500e6dfa = PrivacyKey;
+privacyKeyPhoneCall#3d662b7b = PrivacyKey;
+privacyKeyPhoneP2P#39491cc8 = PrivacyKey;
+privacyKeyForwards#69ec56a3 = PrivacyKey;
+privacyKeyProfilePhoto#96151fed = PrivacyKey;
+privacyKeyPhoneNumber#d19ae46d = PrivacyKey;
+privacyKeyAddedByPhone#42ffd42b = PrivacyKey;
+privacyKeyVoiceMessages#697f414 = PrivacyKey;
+privacyKeyAbout#a486b761 = PrivacyKey;
+
+account.privacyRules#50a04e45 rules:Vector<PrivacyRule> chats:Vector<Chat> users:Vector<User> = account.PrivacyRules;
+
+updatePrivacy#ee3b272a key:PrivacyKey rules:Vector<PrivacyRule> = Update;
+
+---functions---
+
+account.getPrivacy#dadbc950 key:InputPrivacyKey = account.PrivacyRules;
+account.setPrivacy#c9f81ce8 key:InputPrivacyKey rules:Vector<InputPrivacyRule> = account.PrivacyRules;
+InputPrivacyKey constructors are passed as input to methods that accept privacy keys, while PrivacyKeys are contained in constructors returned by the API. Global privacy settings
+
+globalPrivacySettings#734c4ccb flags:# archive_and_mute_new_noncontact_peers:flags.0?true keep_archived_unmuted:flags.1?true keep_archived_folders:flags.2?true = GlobalPrivacySettings;
+
+---functions---
+
+account.getGlobalPrivacySettings#eb2b4cf6 = GlobalPrivacySettings;
+account.setGlobalPrivacySettings#1edaaac2 settings:GlobalPrivacySettings = GlobalPrivacySettings;
+
keep_archived_unmuted
is set.appWebViewResultUrl
-
Type
Related pages
-Bot web apps
+Mini Apps on Telegram
Disable webpage preview
+
+invert_media
+flags.3?true
+If set, any eventual webpage preview will be shown on top of the message instead of at the bottom.
+
message
string
The message
diff --git a/data/web/blogfork.telegram.org/constructor/botMenuButton.html b/data/web/blogfork.telegram.org/constructor/botMenuButton.html
index 84365af112..941ce02287 100644
--- a/data/web/blogfork.telegram.org/constructor/botMenuButton.html
+++ b/data/web/blogfork.telegram.org/constructor/botMenuButton.html
@@ -81,7 +81,7 @@
Type
Related pages
-Bot web apps
+Mini Apps on Telegram
Bot menu button
Whether the join request » must be first approved by an administrator
+
+verified
+flags.7?true
+Is this chat or channel verified by Telegram?
+
+
+scam
+flags.8?true
+This chat is probably a scam
+
+
+fake
+flags.9?true
+If set, this chat was reported by many users as a fake or scam: be careful when interacting with it.
+
+title
string
Chat/supergroup/channel title
@@ -121,6 +136,11 @@
flags.4?Vector<User>
A few of the participants that are in the group
+
color
+int
+Profile color palette ID
+Type
@@ -129,7 +149,9 @@
Channels, supergroups, gigagroups and basic groups
Invites
-Accent colors
+
provider
string
-Venue provider: currently only "foursquare" needs to be supported
+Venue provider: currently only "foursquare" and "gplaces" (Google Places) need to be supported
venue_id
diff --git a/data/web/blogfork.telegram.org/constructor/exportedContactToken.html b/data/web/blogfork.telegram.org/constructor/exportedContactToken.html
index 5e570c08ea..f449427a49 100644
--- a/data/web/blogfork.telegram.org/constructor/exportedContactToken.html
+++ b/data/web/blogfork.telegram.org/constructor/exportedContactToken.html
@@ -74,7 +74,7 @@
diff --git a/data/web/blogfork.telegram.org/constructor/inputBotAppID.html b/data/web/blogfork.telegram.org/constructor/inputBotAppID.html
index 44c0459d3c..f9918015d0 100644
--- a/data/web/blogfork.telegram.org/constructor/inputBotAppID.html
+++ b/data/web/blogfork.telegram.org/constructor/inputBotAppID.html
@@ -4,10 +4,10 @@
expires
int
-Its expiry date
+Its expiration date
inputBotAppID
-
id
long
-named bot web app ID.
+direct link Mini App ID.
access_hash
@@ -81,10 +81,10 @@
Type
Related pages
-Bot web apps
+Mini Apps on Telegram
botApp
-inputBotAppShortName
-
bot_id
InputUser
-ID of the bot that owns the bot web app
+ID of the bot that owns the bot mini app
@@ -83,7 +83,7 @@
short_name
string
-Short name, obtained from a named bot web app deep link
+Short name, obtained from a Direct Mini App deep link
Related pages
Deep links
Bot web apps
+Mini Apps on Telegram
keyboardButtonRequestPeer
-
+peer_type
RequestPeerType
-Filtering criteria to use for the peer selection list shown to the user.
+
The list should display all existing peers of the specified type, and should also offer an option for the user to create and immediately use a peer of the specified type, if needed.Filtering criteria to use for the peer selection list shown to the user.
+
The list should display all existing peers of the specified type, and should also offer an option for the user to create and immediately use one or more (up to max_quantity
) peers of the specified type, if needed.
+
@@ -87,7 +92,7 @@
max_quantity
+int
+Maximum number of peers that can be chosne.
Related pages
messages.sendBotRequestedPeer
-messageActionWebViewDataSent
- Data from the «$text» button was transferred to the bot.
@@ -78,9 +78,9 @@
Related pages
keyboardButtonSimpleWebView
-Bot web apps
+Mini Apps on Telegram
messageActionWebViewDataSentMe
-
Related pages
keyboardButtonSimpleWebView
-Bot web apps
+Mini Apps on Telegram
Whether this message was imported from a foreign chat service, click here for more info »
+
+saved_out
+flags.11?true
+Only for messages forwarded to saved messages », set if the original message was outgoing (though the message may have been originally outgoing even if this flag is not set, if
+from_id
points to the current user).
from_id
flags.0?Peer
The ID of the user that originally sent the message
@@ -104,12 +109,27 @@
saved_from_peer
flags.4?Peer
-Only for messages forwarded to the current user (inputPeerSelf), full info about the user/channel that originally sent the message
+Only for messages forwarded to saved messages », contains the dialog where the message was originally sent.
+saved_from_msg_id
flags.4?int
-Only for messages forwarded to the current user (inputPeerSelf), ID of the message that was forwarded from the original user/channel
+Only for messages forwarded to saved messages », contains the original ID of the message in
+saved_from_peer
.
+
+saved_from_id
+flags.8?Peer
+Only for forwarded messages reforwarded to saved messages », contains the sender of the original message (i.e. if user A sends a message, then user B forwards it somewhere, then user C saves it to saved messages, this field will contain the ID of user B and
+from_id
will contain the ID of user A).
+
+saved_from_name
+flags.9?string
+Only for forwarded messages from users with forward privacy enabled, sent by users with forward privacy enabled, reforwarded to saved messages », contains the sender of the original message (i.e. if user A (fwd privacy enabled) sends a message, then user B (fwd privacy enabled) forwards it somewhere, then user C saves it to saved messages, this field will contain the name of user B and
+from_name
will contain the name of user A).
+
saved_date
+flags.10?int
+Only for forwarded messages reforwarded to saved messages », indicates when was the original message sent (i.e. if user A sends a message @ unixtime 1, then user B forwards it somewhere @ unixtime 2, then user C saves it to saved messages @ unixtime 3, this field will contain 2,
date
will contain 1 and the date
of the containing message will contain 3).
psa_type
@@ -122,7 +142,11 @@
Related pages
Imported messages
-Saved messages
+message
+Whether this media should be hidden behind a spoiler warning
+
+video
+flags.6?true
+Whether this is a video.
+
+
+round
+flags.7?true
+Whether this is a round video.
+
+
+voice
+flags.8?true
+Whether this is a voice message.
+
document
flags.0?Document
Attached document
+
+alt_document
+flags.5?Document
+Currently only used for story videos, may contain an alternative version of the story video, explicitly encoded using H.264 (in MPEG4 transport) at a lower resolution than
+document
.
ttl_seconds
flags.2?int
Time to live of self-destructing document
diff --git a/data/web/blogfork.telegram.org/constructor/messageMediaWebPage.html b/data/web/blogfork.telegram.org/constructor/messageMediaWebPage.html
index 0c7cb412ae..bf8a2fbd9d 100644
--- a/data/web/blogfork.telegram.org/constructor/messageMediaWebPage.html
+++ b/data/web/blogfork.telegram.org/constructor/messageMediaWebPage.html
@@ -67,6 +67,31 @@
+
+flags
+#
+Flags, see TL conditional fields
+
+
+force_large_media
+flags.0?true
+If set, specifies that a large media preview should be used.
+
+
+force_small_media
+flags.1?true
+If set, specifies that a small media preview should be used.
+
+
+manual
+flags.3?true
+If set, indicates that the URL used for the webpage preview was specified manually using inputMediaWebPage, and may not be related to any of the URLs specified in the message.
+
+
+safe
+flags.4?true
+If set, the webpage can be opened directly without user confirmation; otherwise, user confirmation is required, showing the exact URL that will be opened.
+
webpage
WebPage
Webpage preview
@@ -74,7 +99,10 @@
Type
-Related pages
+inputMediaWebPage
+messages.saveDefaultSendAs
-messages.botApp
-
The bot is asking permission to send messages to the user: if the user agrees, set the
write_allowed
flag when invoking messages.requestAppWebView.
+
+has_settings
+flags.2?true
+Deprecated flag, can be ignored.
+
+app
BotApp
Bot app information
@@ -92,9 +97,9 @@
Related pages
messages.requestAppWebView
-Bot web apps
+Mini Apps on Telegram
Related pages
messages.search
-string
Transcripted text
+
+trial_remains_num
+flags.1?int
+For non-Premium users, this flag will be set, indicating the remaining transcriptions in the free trial period.
+
+
trial_remains_until_date
+flags.1?int
+For non-Premium users, this flag will be set, indicating the date when the
+trial_remains_num
counter will be reset to the maximum value of transcribe_audio_trial_weekly_number.Type
@@ -93,6 +103,10 @@
Related pages
updateTranscribedAudio
Telegram Premium
+Client configuration
+Voice message transcription
Related pages
messages.sendVote
-
recent_voters
-flags.3?Vector<long>
+flags.3?Vector<Peer>
IDs of the last users that recently voted in the poll
diff --git a/data/web/blogfork.telegram.org/constructor/requestPeerTypeUser.html b/data/web/blogfork.telegram.org/constructor/requestPeerTypeUser.html
index 447ade96a1..55d3a5787b 100644
--- a/data/web/blogfork.telegram.org/constructor/requestPeerTypeUser.html
+++ b/data/web/blogfork.telegram.org/constructor/requestPeerTypeUser.html
@@ -86,7 +86,8 @@
Type
Related pages
-Telegram Premium
+Telegram Premium
+Parameter for the bot start message if the sponsored chat is a chat with a bot.
+
+webpage
+flags.9?SponsoredWebPage
+Sponsored website
+
+
+app
+flags.10?BotApp
+Mini App » to open when the sponsored message is clicked.
+
message
string
Sponsored message
@@ -122,6 +132,11 @@
Message entities for styled text
+
+button_text
+flags.11?string
+Text of the sponsored message button.
+
sponsor_info
flags.7?string
If set, contains additional information about the sponsor to be shown along with the message.
@@ -136,6 +151,8 @@
Type
Related pages
+Mini Apps on Telegram
+Styled text with message entities
This is a custom emoji stickerset
+
+text_color
+flags.9?true
+Whether the color of this TGS custom emoji stickerset should be changed to the text color when used in messages, the accent color if used as emoji status, white on chat photos, or another appropriate color based on context.
+
+
+channel_emoji_status
+flags.10?true
+If set, this custom emoji stickerset can be used in channel emoji statuses.
+
installed_date
flags.0?int
When was this stickerset installed
@@ -161,6 +171,8 @@
Type
Related pages
+Emoji status
+Deep links
messages.getCustomEmojiDocuments
diff --git a/data/web/blogfork.telegram.org/constructor/updateAttachMenuBots.html b/data/web/blogfork.telegram.org/constructor/updateAttachMenuBots.html
index 45ce60b974..31f460dc3f 100644
--- a/data/web/blogfork.telegram.org/constructor/updateAttachMenuBots.html
+++ b/data/web/blogfork.telegram.org/constructor/updateAttachMenuBots.html
@@ -61,10 +61,10 @@
Type
Related pages
-Bot attachment menu entries
-Bot attachment menu and side menu entries
+messages.getAttachMenuBots
-updateNewAuthorization
-
-
+auth_key_id
+flags
+#
+Flags, see TL conditional fields
+
+
+unconfirmed
+flags.0?true
+Whether the session is unconfirmed, see here » for more info.
+
+
hash
long
-Identifier of an authorization key to which the account is linked
+Hash for pagination, for more info click here
date
-int
+flags.0?int
Authorization date
device
-string
+flags.0?string
Name of device, for example Android
location
-string
+flags.0?string
Location, for example USA, NY (IP=1.2.3.4)
Type
-Related pages
+User Authorization
+Pagination in the API
+Whether the real-time chat translation popup should be hidden.
+
+stories_pinned_available
+flags.26?true
+Whether this user has some pinned stories.
+
+
+blocked_my_stories_from
+flags.27?true
+Whether we've blocked this user, preventing them from seeing our stories ».
+
+
+wallpaper_overridden
+flags.28?true
+Whether the other user has chosen a custom wallpaper for us using messages.setChatWallPaper and the
+for_both
flag, see here » for more info.
+id
long
User ID
@@ -201,6 +216,11 @@
flags.24?WallPaper
Wallpaper to use in the private chat with the user.
+
stories
+flags.25?PeerStories
+Active stories »
+Type
@@ -210,14 +230,20 @@
Translation
Stories
+Blocklist
+messages.setChatWallPaper
+Wallpapers
+Pinned messages
Folders
Admin, banned, default rights
-Wallpapers
-
key
InputPrivacyKey
-Peers to which the privacy rules apply
+New privacy rule
diff --git a/data/web/blogfork.telegram.org/method/account.updateProfile.html b/data/web/blogfork.telegram.org/method/account.updateProfile.html
index 7984e54dea..7335608a2a 100644
--- a/data/web/blogfork.telegram.org/method/account.updateProfile.html
+++ b/data/web/blogfork.telegram.org/method/account.updateProfile.html
@@ -109,11 +109,6 @@
rules
Vector<InputPrivacyRule>
-New privacy rules
+Peers to which the privacy rule will apply.
Code | -Type | -Description | -
---|---|---|
403 | -CHAT_WRITE_FORBIDDEN | -You can't write in this chat. | -
The constructor can be interpreted as a booleantrue
value.
Import chat history from a foreign chat app into a specific Telegram chat, click here for more info about imported chats ».
Telegram allows creating forums with multiple distinct topics.
+How to work with geolocation-based features like geochats and the nearby users feature.
Changes the default value of the Time-To-Live setting, applied to all new chats.
diff --git a/data/web/blogfork.telegram.org/method/channels.getLeftChannels.html b/data/web/blogfork.telegram.org/method/channels.getLeftChannels.html index cffa28fd03..659996cb56 100644 --- a/data/web/blogfork.telegram.org/method/channels.getLeftChannels.html +++ b/data/web/blogfork.telegram.org/method/channels.getLeftChannels.html @@ -4,10 +4,10 @@Get a list of channels/supergroups we left
+Get a list of channels/supergroups we left, requires a takeout session, see here » for more info.
How to fetch results from large lists of objects.
How to handle channels, supergroups, gigagroups, basic groups, and what's the difference between them.
+How to handle channels, supergroups, gigagroups, basic groups, and what's the difference between them.
+Telegram's API allows users to export all of their information through the takeout API.
diff --git a/data/web/blogfork.telegram.org/method/channels.reportSpam.html b/data/web/blogfork.telegram.org/method/channels.reportSpam.html index a0bf50d59f..07e403f169 100644 --- a/data/web/blogfork.telegram.org/method/channels.reportSpam.html +++ b/data/web/blogfork.telegram.org/method/channels.reportSpam.html @@ -115,6 +115,11 @@If the peer settings of a new user allow us to add them as contact, add that user as contact
+If the add contact action bar is active, add that user as contact
List of actions that are possible when interacting with this user, to be shown as suggested actions in the chat bar
+Sometimes, when interacting with Telegram users via private or secret chats, an action bar must be shown on top of the chat, offering convenient action buttons or notices regarding the user.
diff --git a/data/web/blogfork.telegram.org/method/folders.editPeerFolders.html b/data/web/blogfork.telegram.org/method/folders.editPeerFolders.html index e47cf66ba4..790bfcc02d 100644 --- a/data/web/blogfork.telegram.org/method/folders.editPeerFolders.html +++ b/data/web/blogfork.telegram.org/method/folders.editPeerFolders.html @@ -95,6 +95,11 @@top_message
ID used for pagination)next_offset
field of the returned messages.MessageReactionsList)next_offset
field of the returned messages.MessageReactionsList); empty in the first request.The Saved Messages chat allows users to bookmark messages and media: it's a personal cloud storage for any messages or media you may want to send or forward there.
Telegram allows creating forums with multiple distinct topics.
Returns found messages
+Search for messages.
diff --git a/data/web/blogfork.telegram.org/method/messages.getSearchResultsCalendar.html b/data/web/blogfork.telegram.org/method/messages.getSearchResultsCalendar.html index 6446d68bd2..b5efd54818 100644 --- a/data/web/blogfork.telegram.org/method/messages.getSearchResultsCalendar.html +++ b/data/web/blogfork.telegram.org/method/messages.getSearchResultsCalendar.html @@ -4,10 +4,10 @@The Saved Messages chat allows users to bookmark messages and media: it's a personal cloud storage for any messages or media you may want to send or forward there.
Filter is absent.
400 | +CHANNELS_TOO_MUCH | +You have joined too many channels/supergroups. | +||||||||||||||||
400 | +CHANNEL_INVALID | +The provided channel is invalid. | +||||||||||||||||
400 | CHANNEL_PRIVATE | You haven't joined this channel/supergroup. | The provided chat id is invalid. | |||||||||||||||
500 | +CHAT_INVALID | +Invalid chat. | +||||||||||||||||
400 | PEER_ID_INVALID | The provided peer id is invalid. | diff --git a/data/web/blogfork.telegram.org/method/messages.requestWebView.html b/data/web/blogfork.telegram.org/method/messages.requestWebView.html index 17af7d598c..eb8d977943 100644 --- a/data/web/blogfork.telegram.org/method/messages.requestWebView.html +++ b/data/web/blogfork.telegram.org/method/messages.requestWebView.html @@ -4,10 +4,10 @@||||||||||||||||
start_param | flags.3?string | -If the web app was opened from the attachment menu using a attachment menu deep link, start_param should contain the data from the startattach parameter. |
+If the web app was opened from the attachment menu using a attachment menu deep link, start_param should contain the data from the startattach parameter. |
|||||||||||||||
theme_params | @@ -115,14 +115,9 @@Short name of the application; 0-64 English letters, digits, and underscores | |||||||||||||||||
reply_to_msg_id | -flags.0?int | -Whether the inline message that will be sent by the bot on behalf of the user once the web app interaction is terminated should be sent in reply to this message ID. | -||||||||||||||||
top_msg_id | -flags.9?int | -This field must contain the topic ID only when replying to messages in forum topics different from the "General" topic (i.e. reply_to_msg_id is set and reply_to_msg_id != topicID and topicID != 1 ). If the replied-to message is deleted before the method finishes execution, the value in this field will be used to send the message to the correct topic, instead of the "General" topic. |
+reply_to | +flags.0?InputReplyTo | +If set, indicates that the inline message that will be sent by the bot on behalf of the user once the web app interaction is terminated should be sent in reply to the specified message or story. | |||||||||||||
send_as | @@ -133,18 +128,53 @@
Code | +Type | +Description | +
---|---|---|
400 | +BOT_INVALID | +This is not a valid bot. | +
400 | +BOT_WEBVIEW_DISABLED | +A webview cannot be opened in the specified conditions: emitted for example if from_bot_menu or url are set and peer is not the chat with the bot. |
+
400 | +INPUT_USER_DEACTIVATED | +The specified user was deleted. | +
400 | +PEER_ID_INVALID | +The provided peer id is invalid. | +
400 | +YOU_BLOCKED_USER | +You blocked this user. | +
Bots can choose the behavior of the menu button shown next to the text input field.
Terminate webview interaction started with messages.requestWebView, sending the specified message to the chat on behalf of the user.
-Bots can offer users interactive HTML5 web apps to completely replace any website.
Telegram clients must handle special tg:// and t.me deep links encountered in messages, link entities and in other apps by registering OS handlers.
-Telegram allows creating forums with multiple distinct topics.
-Indicate to the server (from the user side) that the user is still using a web app.
If the method returns a QUERY_ID_INVALID
error, the webview must be closed.
reply_to_msg_id
is set and reply_to_msg_id != topicID
and topicID != 1
). url
could not be generated.url
is invalid.Telegram clients support displaying static and animated stickers.
-Telegram allows creating forums with multiple distinct topics.
How to create styled text with message entities
Used by the user to relay data from an opened reply keyboard bot web app to the bot that owns it.
+Used by the user to relay data from an opened reply keyboard bot mini app to the bot that owns it.
Button to open a bot web app using messages.requestSimpleWebView, without sending user information to the web app.
+Button to open a bot mini app using messages.requestSimpleWebView, without sending user information to the web app.
Can only be sent or received as part of a reply keyboard, use keyboardButtonWebView for inline keyboards.
How telegram apps interact with webpages
-Bots can offer users interactive HTML5 web apps to completely replace any website.
Open a bot web app, sending over user information after user confirmation.
+Open a bot mini app, sending over user information after user confirmation.
After calling this method, until the user closes the webview, messages.prolongWebView must be called every 60 seconds.
for_both
flag, we can re-set our previous wallpaper just on our side using this flag.Telegram Premium is an optional subscription service that unlocks additional exclusive client-side and API-side features, while helping support the development of the app.
Telegram apps support generating, sharing and synchronizing chat backgrounds.
Code | +Type | +Description | +
---|---|---|
400 | +TTL_PERIOD_INVALID | +The specified TTL period is invalid. | +
limit=1
and offset=-1
the photo object with the id
specified in max_id
can be fetched.How to handle file references.
+Photo
diff --git a/data/web/blogfork.telegram.org/method/photos.uploadContactProfilePhoto.html b/data/web/blogfork.telegram.org/method/photos.uploadContactProfilePhoto.html index da0a81bb88..d290c0c393 100644 --- a/data/web/blogfork.telegram.org/method/photos.uploadContactProfilePhoto.html +++ b/data/web/blogfork.telegram.org/method/photos.uploadContactProfilePhoto.html @@ -4,10 +4,10 @@Before sending anything into the underlying socket (see transports), the client must first send 0xef
as the first byte (the server will not send 0xef
as the first byte in the first reply).
Then, payloads are wrapped in the following envelope:
If the packet length divided by four is smaller than 127:
0x01..0x7e
.If the packet length divided by four is bigger than or equal to 127 (>= 0x7f
), the following envelope must be used, instead:
If the packet length divided by four is bigger than or equal to 127, the following envelope must be used, instead:
0x7f
0x7f
(127)Quick ACK » may be enabled for this transport.
+To request a quick ACK from the server for an encrypted MTProto payload, use the following envelope for outgoing messages, instead of the one specified above.
+If the packet length divided by four is smaller than 127:
+(length/2)+128
or (length >> 2) | (1 << 7)
); i.e. the most significant bit must be set.If the packet length divided by four is bigger than or equal to 127, the following envelope must be used, instead:
+0xff
(255)The server will send quick ACK tokens by bswapping them (i.e. inverting the order of the 4 bytes of the ACK token) and sending them as a standalone 4-byte packet without a length header.
++----+
+|dcba|
++----+
+These quick ACK packets can be easily distinguished from normal abridged packets because the first byte will always have the most-significant bit set (because quick ACK tokens have the most-significant bit of the last byte set, and since they are bswapped the last byte will come first), and the length/header of normal payload packets coming from the server is always less than or equal to 127 (thus the most-significant bit is not set for normal payloads).
In case 4-byte data alignment is needed, an intermediate version of the original protocol may be used.
Quick ACK » may be enabled for this transport.
+To request a quick ACK from the server for an encrypted MTProto payload, add 0x80000000
to the len
field before encoding it (equivalent to doing len = len | (1 << 31)
, i.e. set the most-significant bit of the length).
The server will send quick ACK tokens as a standalone 4-byte packet without a length header.
++----+
+|abcd|
++----+
+These quick ACK packets can be easily distinguished from normal intermediate packets because quick ACK tokens always have the most-significant bit of the last byte set, and trying to decode an ACK token as a little-endian 32-bit integer will always yield a value bigger than or equal to 0x80000000
, which can never be a valid packet length.
Padded version of the intermediate protocol, to use with obfuscation enabled to bypass ISP blocks.
0-15
Quick ACK » may be enabled for this transport.
+To request a quick ACK from the server for an encrypted MTProto payload, add 0x80000000
to the len
field before encoding it (equivalent to doing len = len | (1 << 31)
, i.e. set the most-significant bit of the length).
The server will send quick ACK tokens as a standalone 8 to 16-byte packet (excluding the length of the packet itself, encoded as usual), containing a 4-byte header with all bits set, followed by the ACK token (abcd
), followed by 0 to 8 random padding bytes.
+----+----+----+----...----+
+|tlen|FFFF|abcd| padding |
++----+----+----+----...----+
+These quick ACK packets can be easily distinguished from normal intermediate padded packets because their length will be always smaller than or equal to 16, smaller than any MTProto packet.
+They can be distinguished from transport errors because the first 4 bytes of the payload are equal to 0xFFFFFFFF
, not a valid transport error.
The basic MTProto transport protocol
Additionally, the following transport features can be used:
These MTProto transport protocols have support for quick acknowledgment. -In this case, the client sets the highest-order length bit in the query packet, and the server responds with a special 4 bytes as a separate packet. -They are the 32 higher-order bits of SHA256 of the encrypted portion of the packet prepended by 32 bytes from the authorization key (the same hash as computed for verifying the message key), with the most significant bit set to make clear that this is not the length of a regular server response packet; if the abridged version is used, bswap is applied to these four bytes.
+Some of the TCP transports listed above support quick ACKs: quick ACKs are a way for clients to get quick receipt acknowledgements for packets.
+To request a quick ack for a specific outgoing payload, clients must set the MSB of an appropriate field in the transport envelope (as described in the documentation for each transport protocol above).
+Also, clients must generate and store a quick ACK token, associating it with the outgoing MTProto payload, by:
+0x80000000
to it (i.e. ack_token = msg_key_long[0:4] | (1 << 31)
on a little-endian system). Once the payload is successfully received, decrypted and accepted for processing by the server, the server will send back the same quick ACK token we generated above, using the encoding described in the documentation for each transport protocol.
+Note that reception of a quick ACK does not indicate that any of the RPC queries contained in the message have succeeded, failed or finished execution at all, it simply indicates that they have been received, decrypted and accepted for processing by the server.
+The server will still send msgs_ack
constructors for content-related constructors and methods contained in payloads which were quick ACKed, as well as replies/errors for methods and constructors, as usual.
In the event of a transport error (missing auth key, transport flood, etc.), the server may send a packet with a signed little-endian number of 4 bytes, whose absolute value contains the error code (the error itself is actually negative).
-For example, error Code 403 corresponds to situations where the corresponding HTTP error would have been returned by the HTTP protocol.
-Error 404 (auth key not found) is returned when the specified auth key ID cannot be found by the DC.
-Error 429 (transport flood) is returned when too many transport connections are established to the same IP in a too short lapse of time, or if any of the container/service message limits are reached.
-Error 444 (invalid DC) is returned while creating an auth key, connecting to an MTProxy or in other contexts if an invalid DC ID is specified.
+In the event of a transport error (missing auth key, transport flood, etc.), the server may send a packet (framed as an MTProto payload by the chosen MTProto transport) with a signed little-endian number of 4 bytes, whose absolute value contains the error code (the error itself is actually negative).
+For example, error Code 403 corresponds to situations where the corresponding HTTP error would have been returned by the HTTP protocol.
+Error 404 (auth key not found) is returned when the specified auth key ID cannot be found by the DC, during the initial MTProto handshake if any of the specified queries is incorrect, or during normal operation for example if some MTProto fields are incorrect (i.e. the MTProto packet length is bigger than the transport-specified packet length, and so on).
+Error 429 (transport flood) is returned when too many transport connections are established to the same IP in a too short lapse of time, or if any of the container/service message limits are reached.
+Error 444 (invalid DC) is returned while creating an auth key, connecting to an MTProxy or in other contexts if an invalid DC ID is specified.
+When using the HTTP/HTTPS transports, transport errors are not transmitted as specified above, instead they are simply returned as normal HTTP status codes (and the HTTP payload must be ignored).
Transport obfuscation is required to use the websocket transports.
+Transport obfuscation is required to use the WebSocket transports.
Transport obfuscation to prevent ISP blocks is implemented using the following protocol, situated under the MTProto transport in the ISO/OSI stack, see the recap; this means that the payload is first wrapped in the MTProto transport envelope (all transports are supported), and then obfuscated:
Prior to establishing the connection (and eventually sending the protocol header of a specific MTProto transport), a 64-byte (512-bit) random initialization payload is generated.
During the generation process, special care must be taken in order to avoid a situation where that the first int (first four bytes) of the random string are equal to one of the known protocol identifiers (see above).
@@ -182,12 +224,12 @@ In other words, reuse the two encryption and decryption AES-256-CTRThe first thing that must be encrypted using the encryption key is the initialization payload itself.
Then bytes 56-64
of the encrypted initialization payload are substituted in the original initialization payload: this is the part that contains the constant MTProto transport protocol identifier and the DC ID (only for MTProxies).
The final initialization payload must then be sent in the socket as first 64 bytes after the TCP handshake.
-Example pseudocode for the generation of an MTProxy connection payload (media DC 4) using the obfuscated padded intermediate transport. +
Example pseudocode for the generation of an MTProxy connection payload (media DC 4) using the obfuscated padded intermediate transport.
Warning: do not use the specified proxy secret in any MTProxy exposed on the internet.
protocol := 0xdddddddd
dc := 0xfcff
-while 1:
+while True:
init := (56 random bytes) + protocol + dc + (2 random bytes)
if init[0] == 0xef:
diff --git a/data/web/blogfork.telegram.org/type/AttachMenuBots.html b/data/web/blogfork.telegram.org/type/AttachMenuBots.html
index c09ca9cc76..0d784d74d4 100644
--- a/data/web/blogfork.telegram.org/type/AttachMenuBots.html
+++ b/data/web/blogfork.telegram.org/type/AttachMenuBots.html
@@ -4,10 +4,10 @@
AttachMenuBots
-
+
-
+
@@ -42,7 +42,7 @@
AttachMenuBots
- Represents a list of bot web apps that can be launched from the attachment menu »
+ Represents a list of bot mini apps that can be launched from the attachment menu »
-
@@ -72,11 +72,11 @@
attachMenuBotsNotModified
-The list of bot web apps hasn't changed
+The list of bot mini apps hasn't changed
attachMenuBots
-Represents a list of bot web apps that can be launched from the attachment menu »
+Represents a list of bot mini apps that can be launched from the attachment menu »
@@ -91,12 +91,12 @@
messages.getAttachMenuBots
-Returns installed attachment menu bot web apps »
+Returns installed attachment menu bot mini apps »
Related pages
-Web Apps for Bots
+Telegram Mini Apps
diff --git a/data/web/blogfork.telegram.org/type/InputBotInlineMessage.html b/data/web/blogfork.telegram.org/type/InputBotInlineMessage.html
index d61124c5c1..96cbbd6c6c 100644
--- a/data/web/blogfork.telegram.org/type/InputBotInlineMessage.html
+++ b/data/web/blogfork.telegram.org/type/InputBotInlineMessage.html
@@ -99,6 +99,10 @@
inputBotInlineMessageMediaInvoice
An invoice
+
+inputBotInlineMessageMediaWebPage
+Specifies options that will be used to generate the link preview for the message, or even a standalone link preview without an attached message.
+
diff --git a/data/web/blogfork.telegram.org/type/InputFileLocation.html b/data/web/blogfork.telegram.org/type/InputFileLocation.html
index 21bb013b66..ee3976b33a 100644
--- a/data/web/blogfork.telegram.org/type/InputFileLocation.html
+++ b/data/web/blogfork.telegram.org/type/InputFileLocation.html
@@ -92,7 +92,7 @@
peer_id
equal to the public channel to which this message was forwarded.Admins of supergroups with a certain number of members can choose to unleash the full proactive power of Telegram's own antispam algorithms – turning on the new Aggressive mode for the automated spam filters.
Schema:
-channelFull#f2355507 flags:# can_view_participants:flags.3?true can_set_username:flags.6?true can_set_stickers:flags.7?true hidden_prehistory:flags.10?true can_set_location:flags.16?true has_scheduled:flags.19?true can_view_stats:flags.20?true blocked:flags.22?true flags2:# can_delete_channel:flags2.0?true antispam:flags2.1?true participants_hidden:flags2.2?true translations_disabled:flags2.3?true id:long about:string participants_count:flags.0?int admins_count:flags.1?int kicked_count:flags.2?int banned_count:flags.2?int online_count:flags.13?int read_inbox_max_id:int read_outbox_max_id:int unread_count:int chat_photo:Photo notify_settings:PeerNotifySettings exported_invite:flags.23?ExportedChatInvite bot_info:Vector<BotInfo> migrated_from_chat_id:flags.4?long migrated_from_max_id:flags.4?int pinned_msg_id:flags.5?int stickerset:flags.8?StickerSet available_min_id:flags.9?int folder_id:flags.11?int linked_chat_id:flags.14?long location:flags.15?ChannelLocation slowmode_seconds:flags.17?int slowmode_next_send_date:flags.18?int stats_dc:flags.12?int pts:int call:flags.21?InputGroupCall ttl_period:flags.24?int pending_suggestions:flags.25?Vector<string> groupcall_default_join_as:flags.26?Peer theme_emoticon:flags.27?string requests_pending:flags.28?int recent_requesters:flags.28?Vector<long> default_send_as:flags.29?Peer available_reactions:flags.30?ChatReactions = ChatFull;
+channelFull#f2bcb6f flags:# can_view_participants:flags.3?true can_set_username:flags.6?true can_set_stickers:flags.7?true hidden_prehistory:flags.10?true can_set_location:flags.16?true has_scheduled:flags.19?true can_view_stats:flags.20?true blocked:flags.22?true flags2:# can_delete_channel:flags2.0?true antispam:flags2.1?true participants_hidden:flags2.2?true translations_disabled:flags2.3?true stories_pinned_available:flags2.5?true view_forum_as_messages:flags2.6?true id:long about:string participants_count:flags.0?int admins_count:flags.1?int kicked_count:flags.2?int banned_count:flags.2?int online_count:flags.13?int read_inbox_max_id:int read_outbox_max_id:int unread_count:int chat_photo:Photo notify_settings:PeerNotifySettings exported_invite:flags.23?ExportedChatInvite bot_info:Vector<BotInfo> migrated_from_chat_id:flags.4?long migrated_from_max_id:flags.4?int pinned_msg_id:flags.5?int stickerset:flags.8?StickerSet available_min_id:flags.9?int folder_id:flags.11?int linked_chat_id:flags.14?long location:flags.15?ChannelLocation slowmode_seconds:flags.17?int slowmode_next_send_date:flags.18?int stats_dc:flags.12?int pts:int call:flags.21?InputGroupCall ttl_period:flags.24?int pending_suggestions:flags.25?Vector<string> groupcall_default_join_as:flags.26?Peer theme_emoticon:flags.27?string requests_pending:flags.28?int recent_requesters:flags.28?Vector<long> default_send_as:flags.29?Peer available_reactions:flags.30?ChatReactions stories:flags2.4?PeerStories wallpaper:flags2.7?WallPaper = ChatFull;
channelAdminLogEventActionToggleAntiSpam#64f36dfc new_value:Bool = ChannelAdminLogEventAction;
channelAdminLogEventActionDeleteMessage#42e047bb message:Message = ChannelAdminLogEventAction;
diff --git a/data/web/core.telegram.org/api/auth.html b/data/web/core.telegram.org/api/auth.html
index c330e025d5..a5a31e34b2 100644
--- a/data/web/core.telegram.org/api/auth.html
+++ b/data/web/core.telegram.org/api/auth.html
@@ -207,16 +207,52 @@ After obtaining the ID token, call account
If the user cannot access their email address, an email reset may be requested using auth.resetLoginEmail.
To change the login email after login, pass emailVerifyPurposeLoginChange as purpose
, following the exact same Google ID/Apple ID/email code login flow as above: on success, the account.verifyEmail method will return an account.emailVerified constructor.
-Sign in/sign up
+Sign in/sign up
When user enters verification code, the auth.signIn method must be used to validate it and possibly sign user in.
If the code was entered correctly, but the method returns auth.authorizationSignUpRequired, it means that account with this phone number doesn't exist yet: user needs to provide basic information, accept terms of service and then the new user registration method (auth.signUp) must be invoked.
2FA
When trying to sign in using auth.signIn, an error 400 SESSION_PASSWORD_NEEDED may be returned, if the user has two-factor authentication enabled.
In this case, instructions for SRP 2FA authentication must be followed.
To set up two-factor authorization on an already authorized account, follow the SRP 2FA authentication docs.
-Test Accounts
+Confirming login
+authorization#ad01d61d flags:# current:flags.0?true official_app:flags.1?true password_pending:flags.2?true encrypted_requests_disabled:flags.3?true call_requests_disabled:flags.4?true unconfirmed:flags.5?true hash:long device_model:string platform:string system_version:string api_id:int app_name:string app_version:string date_created:int date_active:int ip:string country:string region:string = Authorization;
+
+account.authorizations#4bff8ea0 authorization_ttl_days:int authorizations:Vector<Authorization> = account.Authorizations;
+
+updateNewAuthorization#8951abef flags:# unconfirmed:flags.0?true hash:long date:flags.0?int device:flags.0?string location:flags.0?string = Update;
+
+---functions---
+
+account.getAuthorizations#e320c158 = account.Authorizations;
+
+account.changeAuthorizationSettings#40f48462 flags:# confirmed:flags.3?true hash:long encrypted_requests_disabled:flags.0?Bool call_requests_disabled:flags.1?Bool = Bool;
+
+account.resetAuthorization#df77f3bc hash:long = Bool;
+When logging in, other logged-in sessions will receive an updateNewAuthorization update.
+If the unconfirmed
flag is set, clients should display a notification, asking the user if they recognize the session.
+If the user clicks on the Yes button, invoke account.changeAuthorizationSettings with the new session's hash
and the confirmed
flag set, confirming the specified session.
+If the user clicks on the No button, invoke account.resetAuthorization with the new session's hash
, logging out the specified session.
+If no action is taken by the user, the session will be autoconfirmed authorization_autoconfirm_period
seconds after login (see the associated client configuration parameter »).
+Invalidating login codes
+Telegram's servers will automatically invalidate login codes if they are sent by the user to another Telegram chat, either by forwarding them or by sending them inside of a message: however, clients should also manually and immediately invalidate login codes if the user attempts to screenshot or forward a message sent by the login notification service user (ID 777000
) containing login codes.
+If an incoming message that is:
+
+- Sent by the login notification service user (ID
777000
)
+- AND is a text message (not a media)
+- AND contains one or more login codes, defined as a sequence of 5 to 7 decimal digits, optionally interleaved with or followed by any number of
-
characters (example implementation »)
+
+Is either:
+
+- Screenshotted by the user
+- OR forwarded by the user to any chat
+
+account.invalidateSignInCodes should be invoked, passing the extracted login codes
(excluding any -
characeters).
+---functions---
+
+account.invalidateSignInCodes#ca8ae8ba codes:Vector<string> = Bool;
+Test Accounts
Each phone number is limited to only a certain amount of logins per day (e.g. 5, but this is subject to change) after which the API will return a FLOOD error until the next day. This might not be enough for testing the implementation of User Authorization flows in client applications.
-There are several reserved phone number prefixes for testing that your application handles redirects between DCs, sign up, sign in and 2FA flows correctly. These numbers are only available on Test DCs (their IP addresses for TCP transport are available in API development tools panel after api_id was obtained, URI format for HTTPS/Websocket transport).
+There are several reserved phone number prefixes for testing that your application handles redirects between DCs, sign up, sign in and 2FA flows correctly. These numbers are only available on Test DCs (their IP addresses for TCP transport are available in API development tools panel after api_id was obtained, URI format for HTTPS/WebSocket transport).
If you wish to emulate an application of a user associated with DC number X, it is sufficient to specify the phone number as 99966XYYYY
, where YYYY are random numbers, when registering the user. A user like this would always get XXXXX as the login confirmation code (the DC number, repeated five times). Note that the value of X must be in the range of 1-3 because there are only 3 Test DCs. When the flood limit is reached for any particular test number, just choose another number (changing the YYYY random part).
Do not store any important or private information in the messages of such test accounts; anyone can make use of the simplified authorization mechanism – and we periodically wipe all information stored there.
Proceed with User Authorization flows in Production DCs only after you make sure everything works correctly on Test DCs first to avoid reaching flood limits.
diff --git a/data/web/core.telegram.org/api/nearby.html b/data/web/core.telegram.org/api/nearby.html
index d0276d5c0a..8f27603af6 100644
--- a/data/web/core.telegram.org/api/nearby.html
+++ b/data/web/core.telegram.org/api/nearby.html
@@ -2,12 +2,12 @@
- Page not found
+ Nearby users&chats
-
-
+
+
-
+
@@ -39,10 +39,44 @@
-
- Page not found
+
+ Nearby users&chats
- The page has not been saved
+
+
+How to work with geolocation-based features like geochats and the nearby users feature.
+Fetching nearby users and geogroups
+inputGeoPoint#48222faf flags:# lat:double long:double accuracy_radius:flags.0?int = InputGeoPoint;
+
+---functions---
+
+contacts.getLocated#d348bc44 flags:# background:flags.1?true geo_point:InputGeoPoint self_expires:flags.0?int = Updates;
+Use contacts.getLocated to fetch a list of nearby users and groups.
+Do not set any of the background
, self_expires
flags: only populate geo_point
with the current geolocation of the user: a list of users and geochats located nearby will be returned (without publishing the current location of the user).
+This functionality is useful for example to exchange contacts with a nearby Telegram user, or join a location-based group chat, see here » for more usecases.
+See here » for more info on how to create a geogroup, and here » for more info on how to advertise our current location to other users.
+Creating a geogroup
+inputGeoPoint#48222faf flags:# lat:double long:double accuracy_radius:flags.0?int = InputGeoPoint;
+
+---functions---
+
+channels.createChannel#91006707 flags:# broadcast:flags.0?true megagroup:flags.1?true for_import:flags.3?true forum:flags.5?true title:string about:string geo_point:flags.2?InputGeoPoint address:flags.2?string ttl_period:flags.4?int = Updates;
+
+channels.editLocation#58e63f6d channel:InputChannel geo_point:InputGeoPoint address:string = Bool;
+Pass a geo_point
to channels.createChannel when creating a supergroup in order to create a geogroup associated to a geolocation, that will be returned to nearby users ».
+A textual description of the location (1-64 UTF-8 chars) should also be passed in address
.
+Use channels.editLocation to change the group's location.
+Advertising our current location
+inputGeoPoint#48222faf flags:# lat:double long:double accuracy_radius:flags.0?int = InputGeoPoint;
+
+---functions---
+
+contacts.getLocated#d348bc44 flags:# background:flags.1?true geo_point:InputGeoPoint self_expires:flags.0?int = Updates;
+Our current location may be advertised to other users using contacts.getLocated: in this case the self_expires
flag must always be set.
+This flag is used to specify the expiration TTL of the passed geolocation (i.e. the geolocation will expire after self_expires
seconds); pass 0x7fffffff
to disable expiry, 0 to make the current geolocation private.
+The method will also return a list of nearby users and chats, but only if the passed expiration TTL is not equal to zero.
+Users may still fetch nearby users and chats without making their geolocation public by simply not setting the flag, see here » for more info.
+While the geolocation of the current user is public, clients should update it in the background every half-an-hour or so (or in any case before the expiration date specified with self_expires
), while setting this flag: if the new location is more than 1 KM away from the previous one, or if the previous location is unknown, the background
flag should be set.
@@ -109,8 +143,11 @@
-
-
+
+
+
diff --git a/data/web/core.telegram.org/api/privacy.html b/data/web/core.telegram.org/api/privacy.html
index d0276d5c0a..5ecf9ac399 100644
--- a/data/web/core.telegram.org/api/privacy.html
+++ b/data/web/core.telegram.org/api/privacy.html
@@ -2,12 +2,12 @@
- Page not found
+ Privacy
-
-
+
+
-
+
@@ -39,10 +39,95 @@
-
- Page not found
+
+ Privacy
- The page has not been saved
+
+
+Telegram allows users to specify granular privacy settings, choosing which users can or can't interact with them in certain ways.
+Privacy rules
+Schema:
+inputPrivacyValueAllowContacts#d09e07b = InputPrivacyRule;
+inputPrivacyValueAllowAll#184b35ce = InputPrivacyRule;
+inputPrivacyValueAllowUsers#131cc67f users:Vector<InputUser> = InputPrivacyRule;
+inputPrivacyValueDisallowContacts#ba52007 = InputPrivacyRule;
+inputPrivacyValueDisallowAll#d66b66c9 = InputPrivacyRule;
+inputPrivacyValueDisallowUsers#90110467 users:Vector<InputUser> = InputPrivacyRule;
+inputPrivacyValueAllowChatParticipants#840649cf chats:Vector<long> = InputPrivacyRule;
+inputPrivacyValueDisallowChatParticipants#e94f0f86 chats:Vector<long> = InputPrivacyRule;
+inputPrivacyValueAllowCloseFriends#2f453e49 = InputPrivacyRule;
+
+privacyValueAllowContacts#fffe1bac = PrivacyRule;
+privacyValueAllowAll#65427b82 = PrivacyRule;
+privacyValueAllowUsers#b8905fb2 users:Vector<long> = PrivacyRule;
+privacyValueDisallowContacts#f888fa1a = PrivacyRule;
+privacyValueDisallowAll#8b73e763 = PrivacyRule;
+privacyValueDisallowUsers#e4621141 users:Vector<long> = PrivacyRule;
+privacyValueAllowChatParticipants#6b134e8e chats:Vector<long> = PrivacyRule;
+privacyValueDisallowChatParticipants#41c87565 chats:Vector<long> = PrivacyRule;
+privacyValueAllowCloseFriends#f7e8d89b = PrivacyRule;
+
+user#215c4438 flags:# self:flags.10?true contact:flags.11?true mutual_contact:flags.12?true deleted:flags.13?true bot:flags.14?true bot_chat_history:flags.15?true bot_nochats:flags.16?true verified:flags.17?true restricted:flags.18?true min:flags.20?true bot_inline_geo:flags.21?true support:flags.23?true scam:flags.24?true apply_min_photo:flags.25?true fake:flags.26?true bot_attach_menu:flags.27?true premium:flags.28?true attach_menu_enabled:flags.29?true flags2:# bot_can_edit:flags2.1?true close_friend:flags2.2?true stories_hidden:flags2.3?true stories_unavailable:flags2.4?true id:long access_hash:flags.0?long first_name:flags.1?string last_name:flags.2?string username:flags.3?string phone:flags.4?string photo:flags.5?UserProfilePhoto status:flags.6?UserStatus bot_info_version:flags.14?int restriction_reason:flags.18?Vector<RestrictionReason> bot_inline_placeholder:flags.19?string lang_code:flags.22?string emoji_status:flags.30?EmojiStatus usernames:flags2.0?Vector<Username> stories_max_id:flags2.5?int color:flags2.8?PeerColor profile_color:flags2.9?PeerColor = User;
+
+---functions---
+
+contacts.editCloseFriends#ba6705f0 id:Vector<long> = Bool;
+Privacy rules indicate who can or can't do something and are specified by a PrivacyRule, and its input counterpart InputPrivacyRule.
+InputPrivacyRule constructors are passed as input to methods that accept privacy rules, while PrivacyRules are contained in constructors returned by the API.
+See the type page » for a full list of privacy rules and their descriptions.
+One privacy rule in particular should be mentioned separately, (input)privacyValueAllowCloseFriends: this privacy rule, which can be used only when posting stories, refers exclusively to a list of "close friends", that can be modified using contacts.editCloseFriends, passing the full close friend list as a list of user IDs: note that only users in the contact list (even without a phone number) » can be added to the close friends list.
+The current list of close friends can be checking which users in our contact list have the close_friend
flag set in the associated user constructor, see here » for more info on how to fetch the contact list.
+Privacy keys
+Schema:
+inputPrivacyKeyStatusTimestamp#4f96cb18 = InputPrivacyKey;
+inputPrivacyKeyChatInvite#bdfb0426 = InputPrivacyKey;
+inputPrivacyKeyPhoneCall#fabadc5f = InputPrivacyKey;
+inputPrivacyKeyPhoneP2P#db9e70d2 = InputPrivacyKey;
+inputPrivacyKeyForwards#a4dd4c08 = InputPrivacyKey;
+inputPrivacyKeyProfilePhoto#5719bacc = InputPrivacyKey;
+inputPrivacyKeyPhoneNumber#352dafa = InputPrivacyKey;
+inputPrivacyKeyAddedByPhone#d1219bdd = InputPrivacyKey;
+inputPrivacyKeyVoiceMessages#aee69d68 = InputPrivacyKey;
+inputPrivacyKeyAbout#3823cc40 = InputPrivacyKey;
+
+privacyKeyStatusTimestamp#bc2eab30 = PrivacyKey;
+privacyKeyChatInvite#500e6dfa = PrivacyKey;
+privacyKeyPhoneCall#3d662b7b = PrivacyKey;
+privacyKeyPhoneP2P#39491cc8 = PrivacyKey;
+privacyKeyForwards#69ec56a3 = PrivacyKey;
+privacyKeyProfilePhoto#96151fed = PrivacyKey;
+privacyKeyPhoneNumber#d19ae46d = PrivacyKey;
+privacyKeyAddedByPhone#42ffd42b = PrivacyKey;
+privacyKeyVoiceMessages#697f414 = PrivacyKey;
+privacyKeyAbout#a486b761 = PrivacyKey;
+
+account.privacyRules#50a04e45 rules:Vector<PrivacyRule> chats:Vector<Chat> users:Vector<User> = account.PrivacyRules;
+
+updatePrivacy#ee3b272a key:PrivacyKey rules:Vector<PrivacyRule> = Update;
+
+---functions---
+
+account.getPrivacy#dadbc950 key:InputPrivacyKey = account.PrivacyRules;
+account.setPrivacy#c9f81ce8 key:InputPrivacyKey rules:Vector<InputPrivacyRule> = account.PrivacyRules;
+Privacy keys together with privacy rules » indicate what can or can't someone do and are specified by a PrivacyKey constructor, and its input counterpart InputPrivacyKey.
+InputPrivacyKey constructors are passed as input to methods that accept privacy keys, while PrivacyKeys are contained in constructors returned by the API.
+See the type page » for a full list of privacy keys and their descriptions.
+Use account.getPrivacy to obtain the current set of rules associated to a key, and account.setPrivacy to change it.
+Changing the privacy settings will trigger an updatePrivacy, sent to all currently logged in sessions of the current account.
+Global privacy settings
+globalPrivacySettings#734c4ccb flags:# archive_and_mute_new_noncontact_peers:flags.0?true keep_archived_unmuted:flags.1?true keep_archived_folders:flags.2?true = GlobalPrivacySettings;
+
+---functions---
+
+account.getGlobalPrivacySettings#eb2b4cf6 = GlobalPrivacySettings;
+account.setGlobalPrivacySettings#1edaaac2 settings:GlobalPrivacySettings = GlobalPrivacySettings;
+Some global privacy settings can also be fetched and modified using account.getGlobalPrivacySettings and account.setGlobalPrivacySettings.
+Global privacy settings are represented by the globalPrivacySettings constructor, that contains the following parameters:
+
+- archive_and_mute_new_noncontact_peers - Whether to archive and mute new chats from non-contacts.
+- keep_archived_unmuted - Whether unmuted chats will be kept in the Archive chat list when they get a new message.
+- keep_archived_folders - Whether unmuted chats that are always included or pinned in a folder, will be kept in the Archive chat list when they get a new message. Ignored if
keep_archived_unmuted
is set.
+
@@ -109,8 +194,11 @@
-
-
+
+
+
diff --git a/data/web/core.telegram.org/api/sponsored-messages.html b/data/web/core.telegram.org/api/sponsored-messages.html
index b2a0aefa8b..2744481b8f 100644
--- a/data/web/core.telegram.org/api/sponsored-messages.html
+++ b/data/web/core.telegram.org/api/sponsored-messages.html
@@ -5,11 +5,11 @@
Sponsored messages
+sponsoredWebPage#3db8ec63 flags:# url:string site_name:string photo:flags.0?Photo = SponsoredWebPage;…">
+sponsoredWebPage#3db8ec63 flags:# url:string site_name:string photo:flags.0?Photo = SponsoredWebPage;…">
@@ -45,30 +45,58 @@ sponsoredMessage#fc25b828 flags:# recommended:flags.5?true show_peer_photo:flags
Sponsored messages
Related TL schema:
-sponsoredMessage#fc25b828 flags:# recommended:flags.5?true show_peer_photo:flags.6?true random_id:bytes from_id:flags.3?Peer chat_invite:flags.4?ChatInvite chat_invite_hash:flags.4?string channel_post:flags.2?int start_param:flags.0?string message:string entities:flags.1?Vector<MessageEntity> sponsor_info:flags.7?string additional_info:flags.8?string = SponsoredMessage;
+sponsoredWebPage#3db8ec63 flags:# url:string site_name:string photo:flags.0?Photo = SponsoredWebPage;
+
+sponsoredMessage#ed5383f7 flags:# recommended:flags.5?true show_peer_photo:flags.6?true random_id:bytes from_id:flags.3?Peer chat_invite:flags.4?ChatInvite chat_invite_hash:flags.4?string channel_post:flags.2?int start_param:flags.0?string webpage:flags.9?SponsoredWebPage app:flags.10?BotApp message:string entities:flags.1?Vector<MessageEntity> button_text:flags.11?string sponsor_info:flags.7?string additional_info:flags.8?string = SponsoredMessage;
+
messages.sponsoredMessages#c9ee1d87 flags:# posts_between:flags.0?int messages:Vector<SponsoredMessage> chats:Vector<Chat> users:Vector<User> = messages.SponsoredMessages;
---functions---
channels.getSponsoredMessages#ec210fbf channel:InputChannel = messages.SponsoredMessages;
-channels.viewSponsoredMessage#beaedb94 channel:InputChannel random_id:bytes = Bool;
+channels.viewSponsoredMessage#beaedb94 channel:InputChannel random_id:bytes = Bool;
+channels.clickSponsoredMessage#18afbc93 channel:InputChannel random_id:bytes = Bool;
Getting sponsored messages
Each time the user opens a channel, channels.getSponsoredMessages
must be called to receive sponsored messages available for this channel. The result must be cached for 5 minutes.
Displaying sponsored messages
-Sponsored messages must be displayed below all other posts in the channel, after the user scrolls further down, past the last message. The promoted channel or bot specified in the from_id
or chat_invite
mutually exclusive fields must be displayed as the author of the message. The message should also contain one of the following buttons at the bottom:
+Sponsored messages must be displayed below all other posts in the channel, after the user scrolls further down, past the last message. The promoted channel or bot specified in the from_id
or chat_invite
mutually exclusive fields must be displayed as the author of the message. The message should also contain a button at the bottom with one of the following labels:
-- ==View Bot== — if a bot is being promoted. Tapping the button must open the chat with the bot. If
start_param
is specified, the app must use the deep linking mechanism to open the bot.
-- ==View Channel== — if a channel is being promoted. Tapping the button must open the channel using the
from_id
or by importing the chat_invite_hash
invitation link hash ».
-- ==View Post== — if a channel is being promoted and
channel_post
is specified. Tapping the button must open the particular channel post.
+- View Bot — if a bot is being promoted. Tapping the button must open the chat with the bot. If
start_param
is specified, the app must use the deep linking mechanism to open the bot.
+- View Channel — if a channel is being promoted. Tapping the button must open the channel using the
from_id
or by importing the chat_invite_hash
invitation link hash ».
+- View Post — if a channel is being promoted and
channel_post
is specified. Tapping the button must open the particular channel post.
+- Launch App — if the
app
flag is set, the specified Mini App should be opened when clicking on the button.
+- Open Website — If the
webpage
flag is set, clicking on the button should open the external website specified in webpage.url
.
+- The contents of the
button_text
field — if the button_text
field is set.
The message should be marked as "Recommended" instead of "Sponsored" if the recommended
flag is set.
-If the show_peer_photo
flag is set, a profile photo bubble should be displayed for this message, like for messages sent in groups. The photo shown in the bubble is obtained either from the peer contained in from_id
, or from chat_invite
.
+A profile photo bubble should be displayed for the sponsored message, like for messages sent in groups, using:
+
+app.photo
, if the app
flag is set, otherwise
+webpage.photo
, if the webpage
flag is set, otherwise
+- The profile picture of the chat in
chat_invite
, if the chat_invite
flag is set, otherwise
+webpage.photo
, if the webpage
flag is set, otherwise
+- The profile picture of the peer in
from_id
, if the show_peer_photo
flag is set.
+
+A sender name should be displayed for the sponsored message, like for messages sent in groups, using:
+
+app.title
, if the app
flag is set, otherwise
+webpage.site_name
, if the webpage
flag is set, otherwise
+- The title of the chat in
chat_invite
, if the chat_invite
flag is set.
+
If the sponsor_info
or additional_info
flags are set, an additional "Sponsor info" menu item must be present in the message context menu (the menu that pops up when clicking on a button), that when clicked, displays the contents of the flags.
Counting sponsored message views
-Once the entire text is shown on the screen (excluding the button), channels.viewSponsoredMessage
must be called with the random_id
of this sponsored message.
+Once the entire text is shown on the screen (excluding the button), channels.viewSponsoredMessage must be called with the random_id
of the sponsored message.
+Clicking on sponsored messages
+If the user either:
+
+- Clicks on a link in the sponsored message
+- Opens a sponsored chat or a sponsored website via the associated button
+- Opens the sponsored chat via the sponsored message name, the sponsored message photo, or a mention in the sponsored message
+
+channels.clickSponsoredMessage must be called with the random_id
of the sponsored message.
Testing sponsored messages
For the channel https://t.me/SecretAdTestChannel the system will always return a sponsored message: promoting either a channel, a particular message in a channel, or a bot with a start parameter.
diff --git a/data/web/core.telegram.org/bots/features.html b/data/web/core.telegram.org/bots/features.html
index 48a48f5cb0..62a129f780 100644
--- a/data/web/core.telegram.org/bots/features.html
+++ b/data/web/core.telegram.org/bots/features.html
@@ -391,7 +391,6 @@ width=44% />
Telegram also offers a dedicated test environment suitable for more advanced testing. Bots and users in this environment generally have more flexible restrictions – for example:
- When working with the test environment, you may use HTTP links without TLS to test your Web Apps or Web Login.
-- You can test topics without needing 200 users in your group.
Flood limits are not raised in the test environment, and may at times be stricter. To minimize how this impacts your bot, you should make sure that it handles errors with retry policies and does not depend on hardcoded limit values.
diff --git a/data/web/core.telegram.org/constructor/appWebViewResultUrl.html b/data/web/core.telegram.org/constructor/appWebViewResultUrl.html
index 1975648505..949e1d8807 100644
--- a/data/web/core.telegram.org/constructor/appWebViewResultUrl.html
+++ b/data/web/core.telegram.org/constructor/appWebViewResultUrl.html
@@ -4,10 +4,10 @@
appWebViewResultUrl
-
+
-
+
@@ -42,7 +42,7 @@
appWebViewResultUrl
- Contains the link that must be used to open a named bot web app.
+ Contains the link that must be used to open a direct link Mini App.
-
@@ -76,7 +76,7 @@
Type
Related pages
-Bot web apps
+Mini Apps on Telegram
Bots can offer users interactive HTML5 web apps to completely replace any website.
diff --git a/data/web/core.telegram.org/constructor/attachMenuBotIconColor.html b/data/web/core.telegram.org/constructor/attachMenuBotIconColor.html
index a09310962f..20c47a96a3 100644
--- a/data/web/core.telegram.org/constructor/attachMenuBotIconColor.html
+++ b/data/web/core.telegram.org/constructor/attachMenuBotIconColor.html
@@ -4,10 +4,10 @@
attachMenuBotIconColor
-
+
-
+
@@ -42,7 +42,7 @@
attachMenuBotIconColor
- Represents an attachment menu icon color for bot web apps »
+ Represents an attachment menu icon color for bot mini apps »
-
@@ -81,8 +81,8 @@
Type
Related pages
-Bot attachment menu entries
-Bots can install attachment menu entries, offering conveniently accessible, versatile web apps.
+Bot attachment menu and side menu entries
+Bots can install attachment menu and side menu entries, offering conveniently accessible, versatile web apps.
diff --git a/data/web/core.telegram.org/constructor/auth.loginToken.html b/data/web/core.telegram.org/constructor/auth.loginToken.html
index 7b424f9776..468f64df8c 100644
--- a/data/web/core.telegram.org/constructor/auth.loginToken.html
+++ b/data/web/core.telegram.org/constructor/auth.loginToken.html
@@ -69,7 +69,7 @@
expires
int
-Expiry date of QR code
+Expiration date of QR code
token
diff --git a/data/web/core.telegram.org/constructor/channelFull.html b/data/web/core.telegram.org/constructor/channelFull.html
index a3b6867521..117c583ca2 100644
--- a/data/web/core.telegram.org/constructor/channelFull.html
+++ b/data/web/core.telegram.org/constructor/channelFull.html
@@ -137,6 +137,16 @@
Whether the real-time chat translation popup should be hidden.
+stories_pinned_available
+flags2.5?true
+Whether this user has some pinned stories.
+
+
+view_forum_as_messages
+flags2.6?true
+Users may also choose to display messages from all topics of a forum as if they were sent to a normal group, using a "View as messages" setting in the local client.
This setting only affects the current account, and is synced to other logged in sessions using the channels.toggleViewForumAsMessages method; invoking this method will update the value of this flag.
+
+
id
long
ID of the channel
@@ -311,6 +321,16 @@
flags.30?ChatReactions
Allowed message reactions »
+
+stories
+flags2.4?PeerStories
+Channel stories
+
+
+wallpaper
+flags2.7?WallPaper
+Wallpaper
+
Type
@@ -326,6 +346,13 @@
Admins of supergroups with a certain number of members can choose to unleash the full proactive power of Telegram's own antispam algorithms – turning on the new Aggressive mode for the automated spam filters.
Translation
Telegram allows translating chat messages: Telegram Premium users may even enable real-time chat translation.
+Stories
+Telegram users and channels can easily post and view stories through the API.
+Forums
+Telegram allows creating forums with multiple distinct topics.
+channels.toggleViewForumAsMessages
+Users may also choose to display messages from all topics of a forum as if they were sent to a normal group, using a "View as messages" setting in the local client: this setting only affects the current account, and is synced to other logged in sessions using this method.
+Invoking this method will update the value of the view_forum_as_messages
flag of channelFull or dialog and emit an updateChannelViewForumAsMessages.
Admin, banned, default rights
How to handle admin permissions, granular bans and global permissions in channels, groups and supergroups.
Channels, supergroups, gigagroups and basic groups
@@ -343,7 +370,9 @@
Invites
Chats and channels may have a public username or a private invite link: private invite links may be further enhanced with per-user join requests.
Message reactions
-Telegram allows users to react on any message using specific emojis, triggering cute lottie animations.
+Telegram allows users to react on any message using specific emojis, triggering cute lottie animations.
+Wallpapers
+Telegram apps support generating, sharing and synchronizing chat backgrounds.
diff --git a/data/web/core.telegram.org/constructor/chatInvite.html b/data/web/core.telegram.org/constructor/chatInvite.html
index b759be174b..1c25bf97e2 100644
--- a/data/web/core.telegram.org/constructor/chatInvite.html
+++ b/data/web/core.telegram.org/constructor/chatInvite.html
@@ -97,6 +97,21 @@
Whether the join request » must be first approved by an administrator
+verified
+flags.7?true
+Is this chat or channel verified by Telegram?
+
+
+scam
+flags.8?true
+This chat is probably a scam
+
+
+fake
+flags.9?true
+If set, this chat was reported by many users as a fake or scam: be careful when interacting with it.
+
+
title
string
Chat/supergroup/channel title
@@ -121,6 +136,11 @@
flags.4?Vector<User>
A few of the participants that are in the group
+
+color
+int
+Profile color palette ID
+
Type
@@ -129,7 +149,9 @@
Channels, supergroups, gigagroups and basic groups
How to handle channels, supergroups, gigagroups, basic groups, and what's the difference between them.
Invites
-Chats and channels may have a public username or a private invite link: private invite links may be further enhanced with per-user join requests.
+Chats and channels may have a public username or a private invite link: private invite links may be further enhanced with per-user join requests.
+Accent colors
+Telegram users and channels can change the accent color and background pattern of their profile page and their messages!
diff --git a/data/web/core.telegram.org/constructor/exportedContactToken.html b/data/web/core.telegram.org/constructor/exportedContactToken.html
index 5e570c08ea..f449427a49 100644
--- a/data/web/core.telegram.org/constructor/exportedContactToken.html
+++ b/data/web/core.telegram.org/constructor/exportedContactToken.html
@@ -74,7 +74,7 @@
expires
int
-Its expiry date
+Its expiration date
diff --git a/data/web/core.telegram.org/constructor/inputBotAppID.html b/data/web/core.telegram.org/constructor/inputBotAppID.html
index 44c0459d3c..f9918015d0 100644
--- a/data/web/core.telegram.org/constructor/inputBotAppID.html
+++ b/data/web/core.telegram.org/constructor/inputBotAppID.html
@@ -4,10 +4,10 @@
inputBotAppID
-
+
-
+
@@ -42,7 +42,7 @@
inputBotAppID
- Used to fetch information about a named bot web app by its ID
+ Used to fetch information about a direct link Mini App by its ID
-
@@ -69,7 +69,7 @@
id
long
-named bot web app ID.
+direct link Mini App ID.
access_hash
@@ -81,10 +81,10 @@
Type
Related pages
-Bot web apps
+Mini Apps on Telegram
Bots can offer users interactive HTML5 web apps to completely replace any website.
botApp
-Contains information about a named bot web app.
+Contains information about a direct link Mini App.
diff --git a/data/web/core.telegram.org/constructor/inputBotAppShortName.html b/data/web/core.telegram.org/constructor/inputBotAppShortName.html
index b3e904967c..538b443c8a 100644
--- a/data/web/core.telegram.org/constructor/inputBotAppShortName.html
+++ b/data/web/core.telegram.org/constructor/inputBotAppShortName.html
@@ -4,10 +4,10 @@
inputBotAppShortName
-
+
-
+
@@ -42,7 +42,7 @@
inputBotAppShortName
- Used to fetch information about a named bot web app by its short name
+ Used to fetch information about a direct link Mini App by its short name
-
@@ -69,12 +69,12 @@
bot_id
InputUser
-ID of the bot that owns the bot web app
+ID of the bot that owns the bot mini app
short_name
string
-Short name, obtained from a named bot web app deep link
+Short name, obtained from a Direct Mini App deep link
@@ -83,7 +83,7 @@
Related pages
Deep links
Telegram clients must handle special tg:// and t.me deep links encountered in messages, link entities and in other apps by registering OS handlers.
-Bot web apps
+Mini Apps on Telegram
Bots can offer users interactive HTML5 web apps to completely replace any website.
diff --git a/data/web/core.telegram.org/constructor/messageActionWebViewDataSent.html b/data/web/core.telegram.org/constructor/messageActionWebViewDataSent.html
index 6b1e5fcc41..7bc3576303 100644
--- a/data/web/core.telegram.org/constructor/messageActionWebViewDataSent.html
+++ b/data/web/core.telegram.org/constructor/messageActionWebViewDataSent.html
@@ -4,10 +4,10 @@
messageActionWebViewDataSent
-
+
-
+
@@ -42,7 +42,7 @@
messageActionWebViewDataSent
- Data from an opened reply keyboard bot web app was relayed to the bot that owns it (user side service message).
+ Data from an opened reply keyboard bot mini app was relayed to the bot that owns it (user side service message).
Clients should display a service message with the text Data from the «$text» button was transferred to the bot.
@@ -78,9 +78,9 @@
Related pages
keyboardButtonSimpleWebView
-Button to open a bot web app using messages.requestSimpleWebView, without sending user information to the web app.
+Button to open a bot mini app using messages.requestSimpleWebView, without sending user information to the web app.
Can only be sent or received as part of a reply keyboard, use keyboardButtonWebView for inline keyboards.
-Bot web apps
+Mini Apps on Telegram
Bots can offer users interactive HTML5 web apps to completely replace any website.
diff --git a/data/web/core.telegram.org/constructor/messageActionWebViewDataSentMe.html b/data/web/core.telegram.org/constructor/messageActionWebViewDataSentMe.html
index b5fde59ddf..d20dc9276e 100644
--- a/data/web/core.telegram.org/constructor/messageActionWebViewDataSentMe.html
+++ b/data/web/core.telegram.org/constructor/messageActionWebViewDataSentMe.html
@@ -4,10 +4,10 @@
messageActionWebViewDataSentMe
-
+
-
+
@@ -42,7 +42,7 @@
messageActionWebViewDataSentMe
- Data from an opened reply keyboard bot web app was relayed to the bot that owns it (bot side service message).
+ Data from an opened reply keyboard bot mini app was relayed to the bot that owns it (bot side service message).
-
@@ -82,9 +82,9 @@
Related pages
keyboardButtonSimpleWebView
-Button to open a bot web app using messages.requestSimpleWebView, without sending user information to the web app.
+Button to open a bot mini app using messages.requestSimpleWebView, without sending user information to the web app.
Can only be sent or received as part of a reply keyboard, use keyboardButtonWebView for inline keyboards.
-Bot web apps
+Mini Apps on Telegram
Bots can offer users interactive HTML5 web apps to completely replace any website.
diff --git a/data/web/core.telegram.org/constructor/messageFwdHeader.html b/data/web/core.telegram.org/constructor/messageFwdHeader.html
index 4b193a522e..e43de13594 100644
--- a/data/web/core.telegram.org/constructor/messageFwdHeader.html
+++ b/data/web/core.telegram.org/constructor/messageFwdHeader.html
@@ -77,6 +77,11 @@
Whether this message was imported from a foreign chat service, click here for more info »
+saved_out
+flags.11?true
+Only for messages forwarded to saved messages », set if the original message was outgoing (though the message may have been originally outgoing even if this flag is not set, if from_id
points to the current user).
+
+
from_id
flags.0?Peer
The ID of the user that originally sent the message
@@ -104,12 +109,27 @@
saved_from_peer
flags.4?Peer
-Only for messages forwarded to the current user (inputPeerSelf), full info about the user/channel that originally sent the message
+Only for messages forwarded to saved messages », contains the dialog where the message was originally sent.
saved_from_msg_id
flags.4?int
-Only for messages forwarded to the current user (inputPeerSelf), ID of the message that was forwarded from the original user/channel
+Only for messages forwarded to saved messages », contains the original ID of the message in saved_from_peer
.
+
+
+saved_from_id
+flags.8?Peer
+Only for forwarded messages reforwarded to saved messages », contains the sender of the original message (i.e. if user A sends a message, then user B forwards it somewhere, then user C saves it to saved messages, this field will contain the ID of user B and from_id
will contain the ID of user A).
+
+
+saved_from_name
+flags.9?string
+Only for forwarded messages from users with forward privacy enabled, sent by users with forward privacy enabled, reforwarded to saved messages », contains the sender of the original message (i.e. if user A (fwd privacy enabled) sends a message, then user B (fwd privacy enabled) forwards it somewhere, then user C saves it to saved messages, this field will contain the name of user B and from_name
will contain the name of user A).
+
+
+saved_date
+flags.10?int
+Only for forwarded messages reforwarded to saved messages », indicates when was the original message sent (i.e. if user A sends a message @ unixtime 1, then user B forwards it somewhere @ unixtime 2, then user C saves it to saved messages @ unixtime 3, this field will contain 2, date
will contain 1 and the date
of the containing message will contain 3).
psa_type
@@ -122,7 +142,11 @@
Related pages
Imported messages
-Telegram allows importing messages and media from foreign chat apps.
+Telegram allows importing messages and media from foreign chat apps.
+Saved messages
+The Saved Messages chat allows users to bookmark messages and media: it's a personal cloud storage for any messages or media you may want to send or forward there.
+message
+A message
diff --git a/data/web/core.telegram.org/constructor/messageMediaDocument.html b/data/web/core.telegram.org/constructor/messageMediaDocument.html
index b36f54b35e..1b7b1a9f46 100644
--- a/data/web/core.telegram.org/constructor/messageMediaDocument.html
+++ b/data/web/core.telegram.org/constructor/messageMediaDocument.html
@@ -82,11 +82,31 @@
Whether this media should be hidden behind a spoiler warning
+video
+flags.6?true
+Whether this is a video.
+
+
+round
+flags.7?true
+Whether this is a round video.
+
+
+voice
+flags.8?true
+Whether this is a voice message.
+
+
document
flags.0?Document
Attached document
+alt_document
+flags.5?Document
+Currently only used for story videos, may contain an alternative version of the story video, explicitly encoded using H.264 (in MPEG4 transport) at a lower resolution than document
.
+
+
ttl_seconds
flags.2?int
Time to live of self-destructing document
diff --git a/data/web/core.telegram.org/constructor/messageMediaWebPage.html b/data/web/core.telegram.org/constructor/messageMediaWebPage.html
index 0c7cb412ae..bf8a2fbd9d 100644
--- a/data/web/core.telegram.org/constructor/messageMediaWebPage.html
+++ b/data/web/core.telegram.org/constructor/messageMediaWebPage.html
@@ -67,6 +67,31 @@
+flags
+#
+Flags, see TL conditional fields
+
+
+force_large_media
+flags.0?true
+If set, specifies that a large media preview should be used.
+
+
+force_small_media
+flags.1?true
+If set, specifies that a small media preview should be used.
+
+
+manual
+flags.3?true
+If set, indicates that the URL used for the webpage preview was specified manually using inputMediaWebPage, and may not be related to any of the URLs specified in the message.
+
+
+safe
+flags.4?true
+If set, the webpage can be opened directly without user confirmation; otherwise, user confirmation is required, showing the exact URL that will be opened.
+
+
webpage
WebPage
Webpage preview
@@ -74,7 +99,10 @@
Type
-
+
+Related pages
+inputMediaWebPage
+Specifies options that will be used to generate the link preview for the caption, or even a standalone link preview without an attached message.
diff --git a/data/web/core.telegram.org/constructor/messages.botApp.html b/data/web/core.telegram.org/constructor/messages.botApp.html
index fa223ccd2c..1d010fd2bd 100644
--- a/data/web/core.telegram.org/constructor/messages.botApp.html
+++ b/data/web/core.telegram.org/constructor/messages.botApp.html
@@ -4,10 +4,10 @@
messages.botApp
-
+
-
+
@@ -42,7 +42,7 @@
messages.botApp
- Contains information about a named bot web app
+ Contains information about a direct link Mini App
-
@@ -82,6 +82,11 @@
The bot is asking permission to send messages to the user: if the user agrees, set the write_allowed
flag when invoking messages.requestAppWebView.
+has_settings
+flags.2?true
+Deprecated flag, can be ignored.
+
+
app
BotApp
Bot app information
@@ -92,9 +97,9 @@
Related pages
messages.requestAppWebView
-Open a bot web app from a named bot web app deep link, sending over user information after user confirmation.
+Open a bot mini app from a direct Mini App deep link, sending over user information after user confirmation.
After calling this method, until the user closes the webview, messages.prolongWebView must be called every 60 seconds.
-Bot web apps
+Mini Apps on Telegram
Bots can offer users interactive HTML5 web apps to completely replace any website.
diff --git a/data/web/core.telegram.org/constructor/messages.searchCounter.html b/data/web/core.telegram.org/constructor/messages.searchCounter.html
index be49fbbccd..96918f3166 100644
--- a/data/web/core.telegram.org/constructor/messages.searchCounter.html
+++ b/data/web/core.telegram.org/constructor/messages.searchCounter.html
@@ -92,7 +92,7 @@
Related pages
messages.search
-Returns found messages
+Search for messages.
diff --git a/data/web/core.telegram.org/constructor/messages.transcribedAudio.html b/data/web/core.telegram.org/constructor/messages.transcribedAudio.html
index c7e3957c8d..c758780786 100644
--- a/data/web/core.telegram.org/constructor/messages.transcribedAudio.html
+++ b/data/web/core.telegram.org/constructor/messages.transcribedAudio.html
@@ -86,6 +86,16 @@
string
Transcripted text
+
+trial_remains_num
+flags.1?int
+For non-Premium users, this flag will be set, indicating the remaining transcriptions in the free trial period.
+
+
+trial_remains_until_date
+flags.1?int
+For non-Premium users, this flag will be set, indicating the date when the trial_remains_num
counter will be reset to the maximum value of transcribe_audio_trial_weekly_number.
+
Type
@@ -93,6 +103,10 @@
Related pages
updateTranscribedAudio
A pending voice message transcription » initiated with messages.transcribeAudio was updated.
+Telegram Premium
+Telegram Premium is an optional subscription service that unlocks additional exclusive client-side and API-side features, while helping support the development of the app.
+Client configuration
+The MTProto API has multiple configuration parameters that can be fetched with the appropriate methods.
Voice message transcription
How to transcribe voice messages.
diff --git a/data/web/core.telegram.org/constructor/pollResults.html b/data/web/core.telegram.org/constructor/pollResults.html
index c2893954b0..72314609e8 100644
--- a/data/web/core.telegram.org/constructor/pollResults.html
+++ b/data/web/core.telegram.org/constructor/pollResults.html
@@ -88,7 +88,7 @@
recent_voters
-flags.3?Vector<long>
+flags.3?Vector<Peer>
IDs of the last users that recently voted in the poll
diff --git a/data/web/core.telegram.org/constructor/requestPeerTypeUser.html b/data/web/core.telegram.org/constructor/requestPeerTypeUser.html
index 447ade96a1..55d3a5787b 100644
--- a/data/web/core.telegram.org/constructor/requestPeerTypeUser.html
+++ b/data/web/core.telegram.org/constructor/requestPeerTypeUser.html
@@ -86,7 +86,8 @@
Type
Related pages
-Telegram Premium
+Telegram Premium
+Telegram Premium is an optional subscription service that unlocks additional exclusive client-side and API-side features, while helping support the development of the app.
diff --git a/data/web/core.telegram.org/constructor/sponsoredMessage.html b/data/web/core.telegram.org/constructor/sponsoredMessage.html
index 3797434eb4..48202593c6 100644
--- a/data/web/core.telegram.org/constructor/sponsoredMessage.html
+++ b/data/web/core.telegram.org/constructor/sponsoredMessage.html
@@ -112,6 +112,16 @@
Parameter for the bot start message if the sponsored chat is a chat with a bot.
+webpage
+flags.9?SponsoredWebPage
+Sponsored website
+
+
+app
+flags.10?BotApp
+Mini App » to open when the sponsored message is clicked.
+
+
message
string
Sponsored message
@@ -122,6 +132,11 @@
Message entities for styled text
+button_text
+flags.11?string
+Text of the sponsored message button.
+
+
sponsor_info
flags.7?string
If set, contains additional information about the sponsor to be shown along with the message.
@@ -136,6 +151,8 @@
Type
Related pages
+Mini Apps on Telegram
+Bots can offer users interactive HTML5 web apps to completely replace any website.
Styled text with message entities
How to create styled text with message entities
diff --git a/data/web/core.telegram.org/constructor/stickerSet.html b/data/web/core.telegram.org/constructor/stickerSet.html
index c2bd9128a0..b10abc56ad 100644
--- a/data/web/core.telegram.org/constructor/stickerSet.html
+++ b/data/web/core.telegram.org/constructor/stickerSet.html
@@ -102,6 +102,16 @@
This is a custom emoji stickerset
+text_color
+flags.9?true
+Whether the color of this TGS custom emoji stickerset should be changed to the text color when used in messages, the accent color if used as emoji status, white on chat photos, or another appropriate color based on context.
+
+
+channel_emoji_status
+flags.10?true
+If set, this custom emoji stickerset can be used in channel emoji statuses.
+
+
installed_date
flags.0?int
When was this stickerset installed
@@ -161,6 +171,8 @@
Type
Related pages
+Emoji status
+Telegram allows users to set an emoticon or a custom emoji as status, to show next to their name in chats and profiles.
Deep links
Telegram clients must handle special tg:// and t.me deep links encountered in messages, link entities and in other apps by registering OS handlers.
messages.getCustomEmojiDocuments
diff --git a/data/web/core.telegram.org/constructor/updateAttachMenuBots.html b/data/web/core.telegram.org/constructor/updateAttachMenuBots.html
index 45ce60b974..31f460dc3f 100644
--- a/data/web/core.telegram.org/constructor/updateAttachMenuBots.html
+++ b/data/web/core.telegram.org/constructor/updateAttachMenuBots.html
@@ -61,10 +61,10 @@
Type
Related pages
-Bot attachment menu entries
-Bots can install attachment menu entries, offering conveniently accessible, versatile web apps.
+Bot attachment menu and side menu entries
+Bots can install attachment menu and side menu entries, offering conveniently accessible, versatile web apps.
messages.getAttachMenuBots
-Returns installed attachment menu bot web apps »
+Returns installed attachment menu bot mini apps »
diff --git a/data/web/core.telegram.org/constructor/updateReadMessagesContents.html b/data/web/core.telegram.org/constructor/updateReadMessagesContents.html
index 6bec5288d1..848bade1f0 100644
--- a/data/web/core.telegram.org/constructor/updateReadMessagesContents.html
+++ b/data/web/core.telegram.org/constructor/updateReadMessagesContents.html
@@ -67,6 +67,11 @@
+flags
+#
+Flags, see TL conditional fields
+
+
messages
Vector<int>
IDs of read messages
@@ -81,6 +86,11 @@
int
Number of events that were generated
+
+date
+flags.0?int
+When was the last message in messages
marked as read.
+
Type
diff --git a/data/web/core.telegram.org/constructor/webPageEmpty.html b/data/web/core.telegram.org/constructor/webPageEmpty.html
index 0e2ceeae34..c6ac6f5838 100644
--- a/data/web/core.telegram.org/constructor/webPageEmpty.html
+++ b/data/web/core.telegram.org/constructor/webPageEmpty.html
@@ -67,10 +67,20 @@
+flags
+#
+Flags, see TL conditional fields
+
+
id
long
Preview ID
+
+url
+flags.0?string
+URL of the webpage.
+
Type
diff --git a/data/web/core.telegram.org/method/account.setPrivacy.html b/data/web/core.telegram.org/method/account.setPrivacy.html
index 97462019da..6e9afbddf9 100644
--- a/data/web/core.telegram.org/method/account.setPrivacy.html
+++ b/data/web/core.telegram.org/method/account.setPrivacy.html
@@ -71,12 +71,12 @@
key
InputPrivacyKey
-Peers to which the privacy rules apply
+New privacy rule
rules
Vector<InputPrivacyRule>
-New privacy rules
+Peers to which the privacy rule will apply.
diff --git a/data/web/core.telegram.org/method/account.updateStatus.html b/data/web/core.telegram.org/method/account.updateStatus.html
index 3ac8afea2d..b825b34098 100644
--- a/data/web/core.telegram.org/method/account.updateStatus.html
+++ b/data/web/core.telegram.org/method/account.updateStatus.html
@@ -78,23 +78,6 @@
Result
-Possible errors
-
-
-
-Code
-Type
-Description
-
-
-
-
-403
-CHAT_WRITE_FORBIDDEN
-You can't write in this chat.
-
-
-
Related pages
boolTrue
The constructor can be interpreted as a booleantrue
value.
diff --git a/data/web/core.telegram.org/method/auth.requestFirebaseSms.html b/data/web/core.telegram.org/method/auth.requestFirebaseSms.html
index f54e677592..26ba81bb01 100644
--- a/data/web/core.telegram.org/method/auth.requestFirebaseSms.html
+++ b/data/web/core.telegram.org/method/auth.requestFirebaseSms.html
@@ -115,7 +115,6 @@
-Bots can use this method
Related pages
auth.sendCode
Send the verification code for login
diff --git a/data/web/core.telegram.org/method/channels.checkUsername.html b/data/web/core.telegram.org/method/channels.checkUsername.html
index 3f88de3bc5..1c618a0cf4 100644
--- a/data/web/core.telegram.org/method/channels.checkUsername.html
+++ b/data/web/core.telegram.org/method/channels.checkUsername.html
@@ -115,6 +115,16 @@
400
+MSG_ID_INVALID
+Invalid message ID provided.
+
+
+400
+PEER_ID_INVALID
+The provided peer id is invalid.
+
+
+400
USERNAME_INVALID
The provided username is not valid.
diff --git a/data/web/core.telegram.org/method/channels.createChannel.html b/data/web/core.telegram.org/method/channels.createChannel.html
index ed5e480f31..4f4af27c53 100644
--- a/data/web/core.telegram.org/method/channels.createChannel.html
+++ b/data/web/core.telegram.org/method/channels.createChannel.html
@@ -112,12 +112,12 @@
geo_point
flags.2?InputGeoPoint
-Geogroup location
+Geogroup location, see here » for more info on geogroups.
address
flags.2?string
-Geogroup address
+Geogroup address, see here » for more info on geogroups.
ttl_period
@@ -140,6 +140,11 @@
400
+ADDRESS_INVALID
+The specified geopoint address is invalid.
+
+
+400
CHANNELS_ADMIN_LOCATED_TOO_MUCH
The user has reached the limit of public geogroups.
@@ -154,11 +159,21 @@
Chat about too long.
+500
+CHAT_INVALID
+Invalid chat.
+
+
400
CHAT_TITLE_EMPTY
No chat title provided.
+400
+TTL_PERIOD_INVALID
+The specified TTL period is invalid.
+
+
406
USER_RESTRICTED
You're spamreported, you can't create channels or chats.
@@ -172,6 +187,8 @@
Import chat history from a foreign chat app into a specific Telegram chat, click here for more info about imported chats ».
Forums
Telegram allows creating forums with multiple distinct topics.
+Nearby users&chats
+How to work with geolocation-based features like geochats and the nearby users feature.
messages.setDefaultHistoryTTL
Changes the default value of the Time-To-Live setting, applied to all new chats.
diff --git a/data/web/core.telegram.org/method/channels.editPhoto.html b/data/web/core.telegram.org/method/channels.editPhoto.html
index dd61bef098..660747f70c 100644
--- a/data/web/core.telegram.org/method/channels.editPhoto.html
+++ b/data/web/core.telegram.org/method/channels.editPhoto.html
@@ -116,7 +116,7 @@
400
CHAT_NOT_MODIFIED
-The pinned message wasn't modified.
+No changes were made to chat information because the new information you passed is identical to the current information.
403
@@ -135,6 +135,11 @@
400
+IMAGE_PROCESS_FAILED
+Failure while processing image.
+
+
+400
PHOTO_CROP_SIZE_SMALL
Photo is too small.
@@ -148,6 +153,11 @@
PHOTO_INVALID
Photo invalid.
+
+400
+STICKER_MIME_INVALID
+The specified sticker MIME type is invalid.
+
Bots can use this method
diff --git a/data/web/core.telegram.org/method/channels.getForumTopics.html b/data/web/core.telegram.org/method/channels.getForumTopics.html
index 4b616d9945..857090b37b 100644
--- a/data/web/core.telegram.org/method/channels.getForumTopics.html
+++ b/data/web/core.telegram.org/method/channels.getForumTopics.html
@@ -86,22 +86,22 @@
offset_date
int
-Offsets for pagination, for more info click here
+Offsets for pagination, for more info click here, date of the last message of the last found topic. Use 0 or any date in the future to get results from the last topic.
offset_id
int
-Offsets for pagination, for more info click here
+Offsets for pagination, for more info click here, ID of the last message of the last found topic (or initially 0
).
offset_topic
int
-Offsets for pagination, for more info click here
+Offsets for pagination, for more info click here, ID of the last found topic (or initially 0
).
limit
int
-Maximum number of results to return, see pagination
+Maximum number of results to return, see pagination. For optimal performance, the number of returned topics is chosen by the server and can be smaller than the specified limit.
@@ -127,9 +127,13 @@
CHANNEL_INVALID
The provided channel is invalid.
+
+400
+CHANNEL_PRIVATE
+You haven't joined this channel/supergroup.
+
-Bots can use this method
Related pages
Pagination in the API
How to fetch results from large lists of objects.
diff --git a/data/web/core.telegram.org/method/channels.getLeftChannels.html b/data/web/core.telegram.org/method/channels.getLeftChannels.html
index cffa28fd03..659996cb56 100644
--- a/data/web/core.telegram.org/method/channels.getLeftChannels.html
+++ b/data/web/core.telegram.org/method/channels.getLeftChannels.html
@@ -4,10 +4,10 @@
channels.getLeftChannels
-
+
-
+
@@ -42,7 +42,7 @@
channels.getLeftChannels
- Get a list of channels/supergroups we left
+ Get a list of channels/supergroups we left, requires a takeout session, see here » for more info.
-
@@ -91,7 +91,7 @@
403
TAKEOUT_REQUIRED
-A takeout session has to be initialized, first.
+A takeout session needs to be initialized first, see here » for more info.
@@ -99,7 +99,9 @@
Pagination in the API
How to fetch results from large lists of objects.
Channels, supergroups, gigagroups and basic groups
-How to handle channels, supergroups, gigagroups, basic groups, and what's the difference between them.
+How to handle channels, supergroups, gigagroups, basic groups, and what's the difference between them.
+Takeout API
+Telegram's API allows users to export all of their information through the takeout API.
diff --git a/data/web/core.telegram.org/method/channels.toggleJoinRequest.html b/data/web/core.telegram.org/method/channels.toggleJoinRequest.html
index 3c69bace78..7cb6fdc4a1 100644
--- a/data/web/core.telegram.org/method/channels.toggleJoinRequest.html
+++ b/data/web/core.telegram.org/method/channels.toggleJoinRequest.html
@@ -105,13 +105,18 @@
400
+CHAT_ADMIN_REQUIRED
+You must be an admin in this chat to do this.
+
+
+400
CHAT_ID_INVALID
The provided chat id is invalid.
400
CHAT_NOT_MODIFIED
-The pinned message wasn't modified.
+No changes were made to chat information because the new information you passed is identical to the current information.
400
diff --git a/data/web/core.telegram.org/method/channels.toggleUsername.html b/data/web/core.telegram.org/method/channels.toggleUsername.html
index 84627fe94b..cc4f75d1e1 100644
--- a/data/web/core.telegram.org/method/channels.toggleUsername.html
+++ b/data/web/core.telegram.org/method/channels.toggleUsername.html
@@ -100,6 +100,16 @@
400
+CHANNEL_PRIVATE
+You haven't joined this channel/supergroup.
+
+
+400
+CHAT_ADMIN_REQUIRED
+You must be an admin in this chat to do this.
+
+
+400
USERNAMES_ACTIVE_TOO_MUCH
The maximum number of active usernames was reached.
diff --git a/data/web/core.telegram.org/method/chatlists.checkChatlistInvite.html b/data/web/core.telegram.org/method/chatlists.checkChatlistInvite.html
index c38dd2d229..fb06385aa4 100644
--- a/data/web/core.telegram.org/method/chatlists.checkChatlistInvite.html
+++ b/data/web/core.telegram.org/method/chatlists.checkChatlistInvite.html
@@ -93,6 +93,11 @@
INVITE_SLUG_EMPTY
The specified invite slug is empty.
+
+400
+INVITE_SLUG_EXPIRED
+The specified chat folder link has expired.
+
Bots can use this method
diff --git a/data/web/core.telegram.org/method/chatlists.getChatlistUpdates.html b/data/web/core.telegram.org/method/chatlists.getChatlistUpdates.html
index cd23b60bde..9a71e71962 100644
--- a/data/web/core.telegram.org/method/chatlists.getChatlistUpdates.html
+++ b/data/web/core.telegram.org/method/chatlists.getChatlistUpdates.html
@@ -77,6 +77,33 @@
Result
+Possible errors
+
+
+
+Code
+Type
+Description
+
+
+
+
+400
+FILTER_ID_INVALID
+The specified filter ID is invalid.
+
+
+400
+FILTER_NOT_SUPPORTED
+The specified filter cannot be used in this context.
+
+
+400
+INPUT_CHATLIST_INVALID
+The specified folder is invalid.
+
+
+
Bots can use this method
Related pages
Deep links
diff --git a/data/web/core.telegram.org/method/contacts.getStatuses.html b/data/web/core.telegram.org/method/contacts.getStatuses.html
index 1c05b9bb42..a47ada239d 100644
--- a/data/web/core.telegram.org/method/contacts.getStatuses.html
+++ b/data/web/core.telegram.org/method/contacts.getStatuses.html
@@ -4,10 +4,10 @@
contacts.getStatuses
-
+
-
+
@@ -42,7 +42,7 @@
contacts.getStatuses
- Returns the list of contact statuses.
+ Use this method to obtain the online statuses of all contacts with an accessible Telegram account.
-
diff --git a/data/web/core.telegram.org/method/folders.editPeerFolders.html b/data/web/core.telegram.org/method/folders.editPeerFolders.html
index e47cf66ba4..790bfcc02d 100644
--- a/data/web/core.telegram.org/method/folders.editPeerFolders.html
+++ b/data/web/core.telegram.org/method/folders.editPeerFolders.html
@@ -95,6 +95,11 @@
400
+CHANNEL_PRIVATE
+You haven't joined this channel/supergroup.
+
+
+400
CHAT_ID_INVALID
The provided chat id is invalid.
diff --git a/data/web/core.telegram.org/method/messages.editChatAbout.html b/data/web/core.telegram.org/method/messages.editChatAbout.html
index 9025cb0ccb..daab5d9583 100644
--- a/data/web/core.telegram.org/method/messages.editChatAbout.html
+++ b/data/web/core.telegram.org/method/messages.editChatAbout.html
@@ -126,7 +126,7 @@
400
CHAT_NOT_MODIFIED
-The pinned message wasn't modified.
+No changes were made to chat information because the new information you passed is identical to the current information.
403
diff --git a/data/web/core.telegram.org/method/messages.getSearchCounters.html b/data/web/core.telegram.org/method/messages.getSearchCounters.html
index b9e857a066..3d0f475a22 100644
--- a/data/web/core.telegram.org/method/messages.getSearchCounters.html
+++ b/data/web/core.telegram.org/method/messages.getSearchCounters.html
@@ -78,6 +78,11 @@
Peer where to search
+saved_peer_id
+flags.2?InputPeer
+Search within the saved message dialog » with this ID.
+
+
top_msg_id
flags.0?int
If set, consider only messages within the specified forum topic
@@ -109,10 +114,12 @@
Related pages
+Saved messages
+The Saved Messages chat allows users to bookmark messages and media: it's a personal cloud storage for any messages or media you may want to send or forward there.
Forums
Telegram allows creating forums with multiple distinct topics.
messages.search
-Returns found messages
+Search for messages.
diff --git a/data/web/core.telegram.org/method/messages.getSearchResultsCalendar.html b/data/web/core.telegram.org/method/messages.getSearchResultsCalendar.html
index 6446d68bd2..b5efd54818 100644
--- a/data/web/core.telegram.org/method/messages.getSearchResultsCalendar.html
+++ b/data/web/core.telegram.org/method/messages.getSearchResultsCalendar.html
@@ -4,10 +4,10 @@
messages.getSearchResultsCalendar
-
+
-
+
@@ -71,11 +71,21 @@ Can return partial results for the last returned day.
+flags
+#
+Flags, see TL conditional fields
+
+
peer
InputPeer
Peer where to search
+saved_peer_id
+flags.2?InputPeer
+Search within the saved message dialog » with this ID.
+
+
filter
MessagesFilter
Message filter, inputMessagesFilterEmpty, inputMessagesFilterMyMentions filters are not supported by this method.
@@ -112,6 +122,8 @@ Can return partial results for the last returned day.
Related pages
+Saved messages
+The Saved Messages chat allows users to bookmark messages and media: it's a personal cloud storage for any messages or media you may want to send or forward there.
inputMessagesFilterEmpty
Filter is absent.
inputMessagesFilterMyMentions
diff --git a/data/web/core.telegram.org/method/messages.getWebPage.html b/data/web/core.telegram.org/method/messages.getWebPage.html
index 965c2eb3c4..6da0b2333d 100644
--- a/data/web/core.telegram.org/method/messages.getWebPage.html
+++ b/data/web/core.telegram.org/method/messages.getWebPage.html
@@ -84,7 +84,7 @@
Result
-
+
Possible errors
diff --git a/data/web/core.telegram.org/method/messages.hideAllChatJoinRequests.html b/data/web/core.telegram.org/method/messages.hideAllChatJoinRequests.html
index d4d912bab9..67d96e0ad9 100644
--- a/data/web/core.telegram.org/method/messages.hideAllChatJoinRequests.html
+++ b/data/web/core.telegram.org/method/messages.hideAllChatJoinRequests.html
@@ -110,6 +110,16 @@
400
+CHANNELS_TOO_MUCH
+You have joined too many channels/supergroups.
+
+
+400
+CHANNEL_INVALID
+The provided channel is invalid.
+
+
+400
CHANNEL_PRIVATE
You haven't joined this channel/supergroup.
diff --git a/data/web/core.telegram.org/method/messages.migrateChat.html b/data/web/core.telegram.org/method/messages.migrateChat.html
index 0039656c17..cfb29bf648 100644
--- a/data/web/core.telegram.org/method/messages.migrateChat.html
+++ b/data/web/core.telegram.org/method/messages.migrateChat.html
@@ -109,6 +109,11 @@
The provided chat id is invalid.
+500
+CHAT_INVALID
+Invalid chat.
+
+
400
PEER_ID_INVALID
The provided peer id is invalid.
diff --git a/data/web/core.telegram.org/method/messages.prolongWebView.html b/data/web/core.telegram.org/method/messages.prolongWebView.html
index c943a4fe49..c7679a5dfc 100644
--- a/data/web/core.telegram.org/method/messages.prolongWebView.html
+++ b/data/web/core.telegram.org/method/messages.prolongWebView.html
@@ -4,10 +4,10 @@
messages.prolongWebView
-
+
-
+
@@ -96,14 +96,9 @@
Web app interaction ID obtained from messages.requestWebView
-reply_to_msg_id
-flags.0?int
-Whether the inline message that will be sent by the bot on behalf of the user once the web app interaction is terminated should be sent in reply to this message ID.
-
-
-top_msg_id
-flags.9?int
-This field must contain the topic ID only when replying to messages in forum topics different from the "General" topic (i.e. reply_to_msg_id
is set and reply_to_msg_id != topicID
and topicID != 1
).
If the replied-to message is deleted before the method finishes execution, the value in this field will be used to send the message to the correct topic, instead of the "General" topic.
+reply_to
+flags.0?InputReplyTo
+If set, indicates that the inline message that will be sent by the bot on behalf of the user once the web app interaction is terminated should be sent in reply to the specified message or story.
send_as
@@ -117,13 +112,11 @@
Related pages
messages.sendWebViewResultMessage
Terminate webview interaction started with messages.requestWebView, sending the specified message to the chat on behalf of the user.
-Bot web apps
+Mini Apps on Telegram
Bots can offer users interactive HTML5 web apps to completely replace any website.
messages.requestWebView
-Open a bot web app, sending over user information after user confirmation.
-After calling this method, until the user closes the webview, messages.prolongWebView must be called every 60 seconds.
-Forums
-Telegram allows creating forums with multiple distinct topics.
+Open a bot mini app, sending over user information after user confirmation.
+After calling this method, until the user closes the webview, messages.prolongWebView must be called every 60 seconds.
diff --git a/data/web/core.telegram.org/method/messages.requestWebView.html b/data/web/core.telegram.org/method/messages.requestWebView.html
index 17af7d598c..eb8d977943 100644
--- a/data/web/core.telegram.org/method/messages.requestWebView.html
+++ b/data/web/core.telegram.org/method/messages.requestWebView.html
@@ -4,10 +4,10 @@
messages.requestWebView
-
+
-
+
@@ -42,7 +42,7 @@
messages.requestWebView
- Open a bot web app, sending over user information after user confirmation.
+ Open a bot mini app, sending over user information after user confirmation.
After calling this method, until the user closes the webview, messages.prolongWebView must be called every 60 seconds.
@@ -102,7 +102,7 @@
start_param
flags.3?string
-If the web app was opened from the attachment menu using a attachment menu deep link, start_param
should contain the data
from the startattach
parameter.
+If the web app was opened from the attachment menu using a attachment menu deep link, start_param
should contain the data
from the startattach
parameter.
theme_params
@@ -115,14 +115,9 @@
Short name of the application; 0-64 English letters, digits, and underscores
-reply_to_msg_id
-flags.0?int
-Whether the inline message that will be sent by the bot on behalf of the user once the web app interaction is terminated should be sent in reply to this message ID.
-
-
-top_msg_id
-flags.9?int
-This field must contain the topic ID only when replying to messages in forum topics different from the "General" topic (i.e. reply_to_msg_id
is set and reply_to_msg_id != topicID
and topicID != 1
).
If the replied-to message is deleted before the method finishes execution, the value in this field will be used to send the message to the correct topic, instead of the "General" topic.
+reply_to
+flags.0?InputReplyTo
+If set, indicates that the inline message that will be sent by the bot on behalf of the user once the web app interaction is terminated should be sent in reply to the specified message or story.
send_as
@@ -133,18 +128,53 @@
Result
+Possible errors
+
+
+
+Code
+Type
+Description
+
+
+
+
+400
+BOT_INVALID
+This is not a valid bot.
+
+
+400
+BOT_WEBVIEW_DISABLED
+A webview cannot be opened in the specified conditions: emitted for example if from_bot_menu
or url
are set and peer
is not the chat with the bot.
+
+
+400
+INPUT_USER_DEACTIVATED
+The specified user was deleted.
+
+
+400
+PEER_ID_INVALID
+The provided peer id is invalid.
+
+
+400
+YOU_BLOCKED_USER
+You blocked this user.
+
+
+
Related pages
Bot menu button
Bots can choose the behavior of the menu button shown next to the text input field.
messages.sendWebViewResultMessage
Terminate webview interaction started with messages.requestWebView, sending the specified message to the chat on behalf of the user.
-Bot web apps
+Mini Apps on Telegram
Bots can offer users interactive HTML5 web apps to completely replace any website.
Deep links
Telegram clients must handle special tg:// and t.me deep links encountered in messages, link entities and in other apps by registering OS handlers.
-Forums
-Telegram allows creating forums with multiple distinct topics.
-Web Apps for Bots
+Telegram Mini Apps
messages.prolongWebView
Indicate to the server (from the user side) that the user is still using a web app.
If the method returns a QUERY_ID_INVALID
error, the webview must be closed.
diff --git a/data/web/core.telegram.org/method/messages.sendEncryptedService.html b/data/web/core.telegram.org/method/messages.sendEncryptedService.html
index 9f37d18755..2a20756482 100644
--- a/data/web/core.telegram.org/method/messages.sendEncryptedService.html
+++ b/data/web/core.telegram.org/method/messages.sendEncryptedService.html
@@ -100,6 +100,11 @@
400
+CHAT_ID_INVALID
+The provided chat id is invalid.
+
+
+400
DATA_INVALID
Encrypted data invalid.
@@ -114,7 +119,7 @@
The provided secret chat ID is invalid.
-400
+500
MSG_WAIT_FAILED
A waiting call returned an error.
diff --git a/data/web/core.telegram.org/method/messages.sendMedia.html b/data/web/core.telegram.org/method/messages.sendMedia.html
index 401374998f..71a41be81a 100644
--- a/data/web/core.telegram.org/method/messages.sendMedia.html
+++ b/data/web/core.telegram.org/method/messages.sendMedia.html
@@ -105,19 +105,19 @@
Whether to move used stickersets to top, see here for more info on this flag »
+invert_media
+flags.16?true
+If set, any eventual webpage preview will be shown on top of the message instead of at the bottom.
+
+
peer
InputPeer
Destination
-reply_to_msg_id
-flags.0?int
-Message ID to which this message should reply to
-
-
-top_msg_id
-flags.9?int
-This field must contain the topic ID only when replying to messages in forum topics different from the "General" topic (i.e. reply_to_msg_id
is set and reply_to_msg_id != topicID
and topicID != 1
).
If the replied-to message is deleted before the method finishes execution, the value in this field will be used to send the message to the correct topic, instead of the "General" topic.
+reply_to
+flags.0?InputReplyTo
+If set, indicates that the message should be sent in reply to the specified message or story.
media
@@ -250,6 +250,11 @@
403
+CHAT_SEND_PLAIN_FORBIDDEN
+You can't send non-media (text) messages in this chat.
+
+
+403
CHAT_SEND_POLL_FORBIDDEN
You can't send polls in this chat.
@@ -355,6 +360,11 @@
400
+MESSAGE_EMPTY
+The provided message is empty.
+
+
+400
MSG_ID_INVALID
Invalid message ID provided.
@@ -535,6 +545,16 @@
400
+WEBPAGE_NOT_FOUND
+A preview for the specified webpage url
could not be generated.
+
+
+400
+WEBPAGE_URL_INVALID
+The specified webpage url
is invalid.
+
+
+400
YOU_BLOCKED_USER
You blocked this user.
@@ -544,8 +564,6 @@
Related pages
Stickers
Telegram clients support displaying static and animated stickers.
-Forums
-Telegram allows creating forums with multiple distinct topics.
Styled text with message entities
How to create styled text with message entities
Scheduled messages
diff --git a/data/web/core.telegram.org/method/messages.sendWebViewData.html b/data/web/core.telegram.org/method/messages.sendWebViewData.html
index 11038aa84f..4c71f9347b 100644
--- a/data/web/core.telegram.org/method/messages.sendWebViewData.html
+++ b/data/web/core.telegram.org/method/messages.sendWebViewData.html
@@ -4,10 +4,10 @@
messages.sendWebViewData
-
+
-
+
@@ -42,7 +42,7 @@
messages.sendWebViewData
- Used by the user to relay data from an opened reply keyboard bot web app to the bot that owns it.
+ Used by the user to relay data from an opened reply keyboard bot mini app to the bot that owns it.
-
@@ -100,11 +100,11 @@
Related pages
keyboardButtonSimpleWebView
-Button to open a bot web app using messages.requestSimpleWebView, without sending user information to the web app.
+Button to open a bot mini app using messages.requestSimpleWebView, without sending user information to the web app.
Can only be sent or received as part of a reply keyboard, use keyboardButtonWebView for inline keyboards.
Web events
How telegram apps interact with webpages
-Bot web apps
+Mini Apps on Telegram
Bots can offer users interactive HTML5 web apps to completely replace any website.
diff --git a/data/web/core.telegram.org/method/messages.sendWebViewResultMessage.html b/data/web/core.telegram.org/method/messages.sendWebViewResultMessage.html
index 85345a644f..80eb87b439 100644
--- a/data/web/core.telegram.org/method/messages.sendWebViewResultMessage.html
+++ b/data/web/core.telegram.org/method/messages.sendWebViewResultMessage.html
@@ -102,7 +102,7 @@
Bots can use this method
Related pages
messages.requestWebView
-Open a bot web app, sending over user information after user confirmation.
+Open a bot mini app, sending over user information after user confirmation.
After calling this method, until the user closes the webview, messages.prolongWebView must be called every 60 seconds.
diff --git a/data/web/core.telegram.org/method/messages.setChatWallPaper.html b/data/web/core.telegram.org/method/messages.setChatWallPaper.html
index 7ef95a2ec3..67399b008e 100644
--- a/data/web/core.telegram.org/method/messages.setChatWallPaper.html
+++ b/data/web/core.telegram.org/method/messages.setChatWallPaper.html
@@ -80,6 +80,16 @@
Flags, see TL conditional fields
+for_both
+flags.3?true
+Only for Premium users, sets the specified wallpaper for both users of the chat, without requiring confirmation from the other user.
+
+
+revert
+flags.4?true
+If we don't like the new wallpaper the other user of the chat has chosen for us using the for_both
flag, we can re-set our previous wallpaper just on our side using this flag.
+
+
peer
InputPeer
The private chat where the wallpaper will be set
@@ -123,10 +133,17 @@
WALLPAPER_INVALID
The specified wallpaper is invalid.
+
+400
+WALLPAPER_NOT_FOUND
+The specified wallpaper could not be found.
+
Bots can use this method
Related pages
+Telegram Premium
+Telegram Premium is an optional subscription service that unlocks additional exclusive client-side and API-side features, while helping support the development of the app.
Wallpapers
Telegram apps support generating, sharing and synchronizing chat backgrounds.
messageActionSetChatWallPaper
diff --git a/data/web/core.telegram.org/method/messages.setDefaultHistoryTTL.html b/data/web/core.telegram.org/method/messages.setDefaultHistoryTTL.html
index 0e450ad796..fa8a30d616 100644
--- a/data/web/core.telegram.org/method/messages.setDefaultHistoryTTL.html
+++ b/data/web/core.telegram.org/method/messages.setDefaultHistoryTTL.html
@@ -78,6 +78,23 @@
Result
+Possible errors
+
+
+
+Code
+Type
+Description
+
+
+
+
+400
+TTL_PERIOD_INVALID
+The specified TTL period is invalid.
+
+
+
Bots can use this method
diff --git a/data/web/core.telegram.org/method/messages.toggleNoForwards.html b/data/web/core.telegram.org/method/messages.toggleNoForwards.html
index 99e1fe15c2..631d8a7207 100644
--- a/data/web/core.telegram.org/method/messages.toggleNoForwards.html
+++ b/data/web/core.telegram.org/method/messages.toggleNoForwards.html
@@ -100,8 +100,13 @@
400
+CHAT_ADMIN_REQUIRED
+You must be an admin in this chat to do this.
+
+
+400
CHAT_NOT_MODIFIED
-The pinned message wasn't modified.
+No changes were made to chat information because the new information you passed is identical to the current information.
400
diff --git a/data/web/core.telegram.org/method/messages.unpinAllMessages.html b/data/web/core.telegram.org/method/messages.unpinAllMessages.html
index 96899c194a..084d7f0938 100644
--- a/data/web/core.telegram.org/method/messages.unpinAllMessages.html
+++ b/data/web/core.telegram.org/method/messages.unpinAllMessages.html
@@ -105,7 +105,7 @@
400
CHAT_NOT_MODIFIED
-The pinned message wasn't modified.
+No changes were made to chat information because the new information you passed is identical to the current information.
diff --git a/data/web/core.telegram.org/method/messages.updatePinnedMessage.html b/data/web/core.telegram.org/method/messages.updatePinnedMessage.html
index a2ba7e06e2..07a824a464 100644
--- a/data/web/core.telegram.org/method/messages.updatePinnedMessage.html
+++ b/data/web/core.telegram.org/method/messages.updatePinnedMessage.html
@@ -136,7 +136,7 @@
400
CHAT_NOT_MODIFIED
-The pinned message wasn't modified.
+No changes were made to chat information because the new information you passed is identical to the current information.
403
diff --git a/data/web/core.telegram.org/method/phone.exportGroupCallInvite.html b/data/web/core.telegram.org/method/phone.exportGroupCallInvite.html
index 4ac430987f..6f29b1ec5b 100644
--- a/data/web/core.telegram.org/method/phone.exportGroupCallInvite.html
+++ b/data/web/core.telegram.org/method/phone.exportGroupCallInvite.html
@@ -42,7 +42,7 @@
phone.exportGroupCallInvite
- Get an invite link for a group call or livestream
+ Get an invite link for a group call or livestream
-
diff --git a/data/web/core.telegram.org/method/phone.joinGroupCall.html b/data/web/core.telegram.org/method/phone.joinGroupCall.html
index bb1489f252..66e75eba5e 100644
--- a/data/web/core.telegram.org/method/phone.joinGroupCall.html
+++ b/data/web/core.telegram.org/method/phone.joinGroupCall.html
@@ -102,7 +102,7 @@
invite_hash
flags.1?string
-The invitation hash from the invite link », if provided allows speaking in a livestream or muted group chat.
+The invitation hash from the invite link », if provided allows speaking in a livestream or muted group chat.
params
diff --git a/data/web/core.telegram.org/method/photos.getUserPhotos.html b/data/web/core.telegram.org/method/photos.getUserPhotos.html
index 7c2f0e9358..b218cb5a20 100644
--- a/data/web/core.telegram.org/method/photos.getUserPhotos.html
+++ b/data/web/core.telegram.org/method/photos.getUserPhotos.html
@@ -82,7 +82,7 @@
max_id
long
-If a positive value was transferred, the method will return only photos with IDs less than the set one
+If a positive value was transferred, the method will return only photos with IDs less than the set one. This parameter is often useful when refetching file references », as in conjuction with limit=1
and offset=-1
the photo object with the id
specified in max_id
can be fetched.
limit
@@ -120,7 +120,12 @@
-Bots can use this method
+Bots can use this method
+Related pages
+File references
+How to handle file references.
+photo
+Photo
diff --git a/data/web/core.telegram.org/method/photos.uploadContactProfilePhoto.html b/data/web/core.telegram.org/method/photos.uploadContactProfilePhoto.html
index da0a81bb88..d290c0c393 100644
--- a/data/web/core.telegram.org/method/photos.uploadContactProfilePhoto.html
+++ b/data/web/core.telegram.org/method/photos.uploadContactProfilePhoto.html
@@ -4,10 +4,10 @@
photos.uploadContactProfilePhoto
-
+
-
+
@@ -125,6 +125,11 @@
400
+CONTACT_MISSING
+The specified user is not a contact.
+
+
+400
USER_ID_INVALID
The provided user ID is invalid.
diff --git a/data/web/core.telegram.org/method/upload.getFile.html b/data/web/core.telegram.org/method/upload.getFile.html
index 6de0ce639a..89a19844c2 100644
--- a/data/web/core.telegram.org/method/upload.getFile.html
+++ b/data/web/core.telegram.org/method/upload.getFile.html
@@ -115,6 +115,11 @@
400
+CDN_METHOD_INVALID
+You can't call this method in a CDN DC.
+
+
+400
CHANNEL_INVALID
The provided channel is invalid.
@@ -124,11 +129,6 @@
You haven't joined this channel/supergroup.
-400
-FILE_REFERENCE_*
-The file reference expired, it must be refreshed.
-
-
406
FILEREF_UPGRADE_NEEDED
The client has to be updated in order to support file references.
@@ -140,6 +140,11 @@
400
+FILE_REFERENCE_*
+The file reference expired, it must be refreshed.
+
+
+400
FILE_REFERENCE_EXPIRED
File reference expired, it must be refetched as described in the documentation.
diff --git a/data/web/core.telegram.org/method/upload.reuploadCdnFile.html b/data/web/core.telegram.org/method/upload.reuploadCdnFile.html
index a3bb078cf4..d06e2b01d2 100644
--- a/data/web/core.telegram.org/method/upload.reuploadCdnFile.html
+++ b/data/web/core.telegram.org/method/upload.reuploadCdnFile.html
@@ -92,6 +92,11 @@
+400
+CDN_METHOD_INVALID
+You can't call this method in a CDN DC.
+
+
500
CDN_UPLOAD_TIMEOUT
A server-side timeout occurred while reuploading the file to the CDN DC.
diff --git a/data/web/core.telegram.org/method/upload.saveFilePart.html b/data/web/core.telegram.org/method/upload.saveFilePart.html
index 131b8aa279..78c449c1cf 100644
--- a/data/web/core.telegram.org/method/upload.saveFilePart.html
+++ b/data/web/core.telegram.org/method/upload.saveFilePart.html
@@ -82,7 +82,7 @@
bytes
bytes
-Binary data, contend of a part
+Binary data, content of a part
diff --git a/data/web/core.telegram.org/method/users.getFullUser.html b/data/web/core.telegram.org/method/users.getFullUser.html
index 3c2db61461..e851ea6a8e 100644
--- a/data/web/core.telegram.org/method/users.getFullUser.html
+++ b/data/web/core.telegram.org/method/users.getFullUser.html
@@ -89,6 +89,11 @@
400
+CHANNEL_INVALID
+The provided channel is invalid.
+
+
+400
CHANNEL_PRIVATE
You haven't joined this channel/supergroup.
@@ -99,6 +104,11 @@
400
+USERNAME_OCCUPIED
+The provided username is already occupied.
+
+
+400
USER_ID_INVALID
The provided user ID is invalid.
diff --git a/data/web/core.telegram.org/type/AttachMenuBots.html b/data/web/core.telegram.org/type/AttachMenuBots.html
index c09ca9cc76..0d784d74d4 100644
--- a/data/web/core.telegram.org/type/AttachMenuBots.html
+++ b/data/web/core.telegram.org/type/AttachMenuBots.html
@@ -4,10 +4,10 @@
AttachMenuBots
-
+
-
+
@@ -42,7 +42,7 @@
AttachMenuBots
- Represents a list of bot web apps that can be launched from the attachment menu »
+ Represents a list of bot mini apps that can be launched from the attachment menu »
-
@@ -72,11 +72,11 @@
attachMenuBotsNotModified
-The list of bot web apps hasn't changed
+The list of bot mini apps hasn't changed
attachMenuBots
-Represents a list of bot web apps that can be launched from the attachment menu »
+Represents a list of bot mini apps that can be launched from the attachment menu »
@@ -91,12 +91,12 @@
messages.getAttachMenuBots
-Returns installed attachment menu bot web apps »
+Returns installed attachment menu bot mini apps »
Related pages
-Web Apps for Bots
+Telegram Mini Apps
diff --git a/data/web/core.telegram.org/type/InputBotInlineMessage.html b/data/web/core.telegram.org/type/InputBotInlineMessage.html
index d61124c5c1..96cbbd6c6c 100644
--- a/data/web/core.telegram.org/type/InputBotInlineMessage.html
+++ b/data/web/core.telegram.org/type/InputBotInlineMessage.html
@@ -99,6 +99,10 @@
inputBotInlineMessageMediaInvoice
An invoice
+
+inputBotInlineMessageMediaWebPage
+Specifies options that will be used to generate the link preview for the message, or even a standalone link preview without an attached message.
+
diff --git a/data/web/core.telegram.org/type/InputFileLocation.html b/data/web/core.telegram.org/type/InputFileLocation.html
index 21bb013b66..ee3976b33a 100644
--- a/data/web/core.telegram.org/type/InputFileLocation.html
+++ b/data/web/core.telegram.org/type/InputFileLocation.html
@@ -92,7 +92,7 @@
inputTakeoutFileLocation
-Empty constructor for takeout
+Used to download a JSON file that will contain all personal data related to features that do not have a specialized takeout method yet, see here » for more info on the takeout API.
inputPhotoFileLocation
diff --git a/data/web/core.telegram.org/type/InputMedia.html b/data/web/core.telegram.org/type/InputMedia.html
index 3272ed858f..14331d39dd 100644
--- a/data/web/core.telegram.org/type/InputMedia.html
+++ b/data/web/core.telegram.org/type/InputMedia.html
@@ -139,6 +139,14 @@
inputMediaDice
Send a dice-based animated sticker
+
+inputMediaStory
+Forwarded story
+
+
+inputMediaWebPage
+Specifies options that will be used to generate the link preview for the caption, or even a standalone link preview without an attached message.
+
diff --git a/data/web/core.telegram.org/type/InputStickerSet.html b/data/web/core.telegram.org/type/InputStickerSet.html
index cffb4187c4..65581a6912 100644
--- a/data/web/core.telegram.org/type/InputStickerSet.html
+++ b/data/web/core.telegram.org/type/InputStickerSet.html
@@ -114,6 +114,10 @@
inputStickerSetEmojiDefaultTopicIcons
Default custom emoji stickerset for forum topic icons
+
+inputStickerSetEmojiChannelDefaultStatuses
+Default custom emoji status stickerset for channel statuses
+
diff --git a/data/web/core.telegram.org/type/MessageMedia.html b/data/web/core.telegram.org/type/MessageMedia.html
index 2cfdd3443b..9e445c612d 100644
--- a/data/web/core.telegram.org/type/MessageMedia.html
+++ b/data/web/core.telegram.org/type/MessageMedia.html
@@ -135,6 +135,18 @@
messageMediaDice
Dice-based animated sticker
+
+messageMediaStory
+Represents a forwarded story or a story mention.
+
+
+messageMediaGiveaway
+Contains info about a giveaway, see here » for more info.
+
+
+messageMediaGiveawayResults
+A giveaway with public winners has finished, this constructor contains info about the winners.
+
Methods
diff --git a/data/web/core.telegram.org/type/SimpleWebViewResult.html b/data/web/core.telegram.org/type/SimpleWebViewResult.html
index b208992c6d..bc7fce440a 100644
--- a/data/web/core.telegram.org/type/SimpleWebViewResult.html
+++ b/data/web/core.telegram.org/type/SimpleWebViewResult.html
@@ -86,7 +86,7 @@
messages.requestSimpleWebView
-Open a bot web app.
+Open a bot mini app.
diff --git a/data/web/core.telegram.org/type/Updates.html b/data/web/core.telegram.org/type/Updates.html
index 9a7073aa40..b53797feda 100644
--- a/data/web/core.telegram.org/type/Updates.html
+++ b/data/web/core.telegram.org/type/Updates.html
@@ -253,10 +253,6 @@
Start a conversation with a bot using a deep linking parameter
-help.getAppChangelog
-Get changelog of current app.
Typically, an updates constructor will be returned, containing one or more updateServiceNotification updates with app-specific changelogs.
-
-
channels.createChannel
Create a supergroup/channel.
@@ -350,7 +346,7 @@
messages.sendVote
-Vote in a poll
+Vote in a poll
Starting from layer 159, the vote will be sent from the peer specified using messages.saveDefaultSendAs.
messages.getPollResults
@@ -370,7 +366,7 @@
contacts.acceptContact
-If the peer settings of a new user allow us to add them as contact, add that user as contact
+If the add contact action bar is active, add that user as contact
channels.editCreator
@@ -378,7 +374,7 @@
contacts.getLocated
-Get contacts near you
+Get users and geochats near you, see here » for more info.
channels.toggleSlowMode
@@ -394,7 +390,7 @@
contacts.blockFromReplies
-Stop getting notifications about thread replies of a certain user in @replies
+Stop getting notifications about discussion replies of a certain user in @replies
phone.createGroupCall
@@ -486,7 +482,7 @@
messages.sendWebViewData
-Used by the user to relay data from an opened reply keyboard bot web app to the bot that owns it.
+Used by the user to relay data from an opened reply keyboard bot mini app to the bot that owns it.
channels.toggleJoinToSend
@@ -538,7 +534,7 @@
messages.sendBotRequestedPeer
-Send a chosen peer, as requested by a keyboardButtonRequestPeer button.
+Send one or more chosen peers, as requested by a keyboardButtonRequestPeer button.
chatlists.joinChatlistInvite
@@ -556,6 +552,50 @@
messages.setChatWallPaper
Set a custom wallpaper » in a specific private chat with another user.
+
+stories.sendStory
+Uploads a Telegram Story.
+
+
+stories.editStory
+Edit an uploaded story
+
+
+stories.activateStealthMode
+Activates stories stealth mode, see here » for more info.
Will return an updateStoriesStealthMode.
+
+
+stories.sendReaction
+React to a story.
+
+
+bots.allowSendMessage
+Allow the specified bot to send us messages
+
+
+stories.getAllReadPeerStories
+Obtain the latest read story ID for all peers when first logging in, returned as a list of updateReadStories updates, see here » for more info.
+
+
+payments.applyGiftCode
+Apply a Telegram Premium giftcode »
+
+
+payments.launchPrepaidGiveaway
+Launch a prepaid giveaway ».
+
+
+channels.updateColor
+Update the accent color and background custom emoji » of a channel.
+
+
+channels.toggleViewForumAsMessages
+Users may also choose to display messages from all topics of a forum as if they were sent to a normal group, using a "View as messages" setting in the local client: this setting only affects the current account, and is synced to other logged in sessions using this method.
Invoking this method will update the value of the view_forum_as_messages
flag of channelFull or dialog and emit an updateChannelViewForumAsMessages.
+
+
+channels.updateEmojiStatus
+Set an emoji status for a channel.
+
diff --git a/data/web/core.telegram.org/type/WebPage.html b/data/web/core.telegram.org/type/WebPage.html
index 5495e96054..3fde91b062 100644
--- a/data/web/core.telegram.org/type/WebPage.html
+++ b/data/web/core.telegram.org/type/WebPage.html
@@ -89,21 +89,6 @@
The preview of the webpage hasn't changed
-
-Methods
-
-
-
-Method
-Description
-
-
-
-
-messages.getWebPage
-Get instant view page
-
-
diff --git a/data/web/core.telegram.org/type/WebViewResult.html b/data/web/core.telegram.org/type/WebViewResult.html
index 026610fb25..28306a236b 100644
--- a/data/web/core.telegram.org/type/WebViewResult.html
+++ b/data/web/core.telegram.org/type/WebViewResult.html
@@ -86,7 +86,7 @@
messages.requestWebView
-Open a bot web app, sending over user information after user confirmation.
After calling this method, until the user closes the webview, messages.prolongWebView must be called every 60 seconds.
+Open a bot mini app, sending over user information after user confirmation.
After calling this method, until the user closes the webview, messages.prolongWebView must be called every 60 seconds.
diff --git a/data/web/core.telegram.org/type/messages.Messages.html b/data/web/core.telegram.org/type/messages.Messages.html
index 97591f2f08..472ac476e1 100644
--- a/data/web/core.telegram.org/type/messages.Messages.html
+++ b/data/web/core.telegram.org/type/messages.Messages.html
@@ -123,7 +123,7 @@
messages.search
-Returns found messages
+Search for messages.
channels.getMessages
@@ -154,10 +154,6 @@
Get messages in a reply thread
-stats.getMessagePublicForwards
-Obtains a list of messages, indicating to which other public channels was a channel message forwarded.
Will return a list of messages with peer_id
equal to the public channel to which this message was forwarded.
-
-
messages.getUnreadReactions
Get unread reactions to messages you sent
@@ -165,6 +161,10 @@
messages.searchSentMedia
View and search recently sent media.
This method does not support pagination.
+
+messages.getSavedHistory
+Returns saved messages » forwarded from a specific peer
+
diff --git a/data/web/core.telegram.org/type/updates.ChannelDifference.html b/data/web/core.telegram.org/type/updates.ChannelDifference.html
index ea0d034628..a4486cca1f 100644
--- a/data/web/core.telegram.org/type/updates.ChannelDifference.html
+++ b/data/web/core.telegram.org/type/updates.ChannelDifference.html
@@ -77,7 +77,7 @@
updates.channelDifferenceTooLong
-The provided pts + limit < remote pts
. Simply, there are too many updates to be fetched (more than limit
), the client has to resolve the update gap in one of the following ways (assuming the existence of a persistent database to locally store messages):
1. Delete all known messages in the chat, begin from scratch by refetching all messages manually with messages.getHistory. It is easy to implement, but suddenly disappearing messages look awful to the user.
2. Save all messages loaded in the memory until application restart, but delete all messages from the database. Messages left in the memory must be lazily updated using calls to messages.getHistory.
It will look much smoother to the user, they will need to redownload messages only after client restart.
Unsynchronized messages left in memory shouldn't be saved to the database, results of messages.getHistory and messages.getMessages must be used to update the state of deleted and edited messages left in the memory.
3. Save all messages loaded in the memory and stored in the database without saving that some messages form continuous ranges.
Messages in the database will be excluded when paginating through or searching the local message history after application restart and will be available only through individual message queries.
Every message should still be checked using messages.getHistory.
It has more disadvantages over 2) than advantages.
4. Save all messages with saving all data about continuous message ranges.
Messages from the database may be used when paginating through or searching the local message history.
The messages should still be lazily checked using messages.getHistory, but they are still available offline.
It is the best way for gaps support, but it is pretty hard to implement correctly.
It should be also noted that some messages like live location messages shouldn't be deleted.
+The provided pts + limit < remote pts
. Simply, there are too many updates to be fetched (more than limit
), the client has to resolve the update gap in one of the following ways (assuming the existence of a persistent database to locally store messages):
1. Delete all known messages in the chat, begin from scratch by refetching all messages manually with messages.getHistory. It is easy to implement, but suddenly disappearing messages look awful to the user.
2. Save all messages loaded in the memory until application restart, but delete all messages from the database. Messages left in the memory must be lazily updated using calls to messages.getHistory.
It will look much smoother to the user, they will need to redownload messages only after client restart.
Unsynchronized messages left in memory shouldn't be saved to the database, results of messages.getHistory and messages.getMessages must be used to update the state of deleted and edited messages left in the memory.
3. Save all messages loaded in the memory and stored in the database without saving that some messages form continuous ranges.
Messages in the database will be excluded when paginating through or searching the local message history after application restart and will be available only through individual message queries.
Every message should still be checked using messages.getHistory.
It has more disadvantages over 2) than advantages.
4. Save all messages with saving all data about continuous message ranges.
Messages from the database may be used when paginating through or searching the local message history.
The messages should still be lazily checked using messages.getHistory, but they are still available offline.
It is the best way for gaps support, but it is pretty hard to implement correctly.
It should be also noted that some messages like live location messages shouldn't be deleted.
updates.channelDifference
diff --git a/data/web/corefork.telegram.org/api/auth.html b/data/web/corefork.telegram.org/api/auth.html
index 637467277c..8775555327 100644
--- a/data/web/corefork.telegram.org/api/auth.html
+++ b/data/web/corefork.telegram.org/api/auth.html
@@ -207,16 +207,52 @@ After obtaining the ID token, call account
If the user cannot access their email address, an email reset may be requested using auth.resetLoginEmail.
To change the login email after login, pass emailVerifyPurposeLoginChange as purpose
, following the exact same Google ID/Apple ID/email code login flow as above: on success, the account.verifyEmail method will return an account.emailVerified constructor.
-Sign in/sign up
+Sign in/sign up
When user enters verification code, the auth.signIn method must be used to validate it and possibly sign user in.
If the code was entered correctly, but the method returns auth.authorizationSignUpRequired, it means that account with this phone number doesn't exist yet: user needs to provide basic information, accept terms of service and then the new user registration method (auth.signUp) must be invoked.
2FA
When trying to sign in using auth.signIn, an error 400 SESSION_PASSWORD_NEEDED may be returned, if the user has two-factor authentication enabled.
In this case, instructions for SRP 2FA authentication must be followed.
To set up two-factor authorization on an already authorized account, follow the SRP 2FA authentication docs.
-Test Accounts
+Confirming login
+authorization#ad01d61d flags:# current:flags.0?true official_app:flags.1?true password_pending:flags.2?true encrypted_requests_disabled:flags.3?true call_requests_disabled:flags.4?true unconfirmed:flags.5?true hash:long device_model:string platform:string system_version:string api_id:int app_name:string app_version:string date_created:int date_active:int ip:string country:string region:string = Authorization;
+
+account.authorizations#4bff8ea0 authorization_ttl_days:int authorizations:Vector<Authorization> = account.Authorizations;
+
+updateNewAuthorization#8951abef flags:# unconfirmed:flags.0?true hash:long date:flags.0?int device:flags.0?string location:flags.0?string = Update;
+
+---functions---
+
+account.getAuthorizations#e320c158 = account.Authorizations;
+
+account.changeAuthorizationSettings#40f48462 flags:# confirmed:flags.3?true hash:long encrypted_requests_disabled:flags.0?Bool call_requests_disabled:flags.1?Bool = Bool;
+
+account.resetAuthorization#df77f3bc hash:long = Bool;
+When logging in, other logged-in sessions will receive an updateNewAuthorization update.
+If the unconfirmed
flag is set, clients should display a notification, asking the user if they recognize the session.
+If the user clicks on the Yes button, invoke account.changeAuthorizationSettings with the new session's hash
and the confirmed
flag set, confirming the specified session.
+If the user clicks on the No button, invoke account.resetAuthorization with the new session's hash
, logging out the specified session.
+If no action is taken by the user, the session will be autoconfirmed authorization_autoconfirm_period
seconds after login (see the associated client configuration parameter »).
+Invalidating login codes
+Telegram's servers will automatically invalidate login codes if they are sent by the user to another Telegram chat, either by forwarding them or by sending them inside of a message: however, clients should also manually and immediately invalidate login codes if the user attempts to screenshot or forward a message sent by the login notification service user (ID 777000
) containing login codes.
+If an incoming message that is:
+
+- Sent by the login notification service user (ID
777000
)
+- AND is a text message (not a media)
+- AND contains one or more login codes, defined as a sequence of 5 to 7 decimal digits, optionally interleaved with or followed by any number of
-
characters (example implementation »)
+
+Is either:
+
+- Screenshotted by the user
+- OR forwarded by the user to any chat
+
+account.invalidateSignInCodes should be invoked, passing the extracted login codes
(excluding any -
characeters).
+---functions---
+
+account.invalidateSignInCodes#ca8ae8ba codes:Vector<string> = Bool;
+Test Accounts
Each phone number is limited to only a certain amount of logins per day (e.g. 5, but this is subject to change) after which the API will return a FLOOD error until the next day. This might not be enough for testing the implementation of User Authorization flows in client applications.
-There are several reserved phone number prefixes for testing that your application handles redirects between DCs, sign up, sign in and 2FA flows correctly. These numbers are only available on Test DCs (their IP addresses for TCP transport are available in API development tools panel after api_id was obtained, URI format for HTTPS/Websocket transport).
+There are several reserved phone number prefixes for testing that your application handles redirects between DCs, sign up, sign in and 2FA flows correctly. These numbers are only available on Test DCs (their IP addresses for TCP transport are available in API development tools panel after api_id was obtained, URI format for HTTPS/WebSocket transport).
If you wish to emulate an application of a user associated with DC number X, it is sufficient to specify the phone number as 99966XYYYY
, where YYYY are random numbers, when registering the user. A user like this would always get XXXXX as the login confirmation code (the DC number, repeated five times). Note that the value of X must be in the range of 1-3 because there are only 3 Test DCs. When the flood limit is reached for any particular test number, just choose another number (changing the YYYY random part).
Do not store any important or private information in the messages of such test accounts; anyone can make use of the simplified authorization mechanism – and we periodically wipe all information stored there.
Proceed with User Authorization flows in Production DCs only after you make sure everything works correctly on Test DCs first to avoid reaching flood limits.
diff --git a/data/web/corefork.telegram.org/api/errors.html b/data/web/corefork.telegram.org/api/errors.html
index e51cfb476f..3c874a7d17 100644
--- a/data/web/corefork.telegram.org/api/errors.html
+++ b/data/web/corefork.telegram.org/api/errors.html
@@ -49,7 +49,7 @@ An error is characterized by several parameters:
Error Type
A string literal in the form of /[A-Z_0-9]+/
, which summarizes the problem. For example, AUTH_KEY_UNREGISTERED
. This is an optional parameter.
Error Database
-A full human-readable JSON list of RPC errors that can be returned by all methods in the API can be found here », what follows is a description of its fields:
+A full human-readable JSON list of RPC errors that can be returned by all methods in the API can be found here », what follows is a description of its fields:
errors
- All error messages and codes for each method (object).
- Keys: Error codes as strings (numeric strings)
@@ -135,6 +135,8 @@ An error is characterized by several parameters:
- PHOTO_INVALID_DIMENSIONS: The photo dimensions are invalid
- FIELD_NAME_INVALID: The field with the name FIELD_NAME is invalid
- FIELD_NAME_EMPTY: The field with the name FIELD_NAME is missing
+- MSG_WAIT_FAILED: A request that must be completed before processing the current request returned an error
+- MSG_WAIT_TIMEOUT: A request that must be completed before processing the current request didn't finish processing yet
401 UNAUTHORIZED
There was an unauthorized attempt to use functionality available only to authorized users.
diff --git a/data/web/corefork.telegram.org/api/layers.html b/data/web/corefork.telegram.org/api/layers.html
index bce6091ce5..b5e750abf4 100644
--- a/data/web/corefork.telegram.org/api/layers.html
+++ b/data/web/corefork.telegram.org/api/layers.html
@@ -45,868 +45,6 @@
Below you will find information on schema changes. For more details on the use of layers, see Invoking API methods.
-Layer 170
-To view all the changes since the last update, start reading the changelog @ Layer 159.
-Most importantly, the following detailed articles were added:
-
-- Working with stories »
-- Working with boosts »
-- Working with giveaways »
-- Working with accent colors »
-- Working with the recommendation system »
-- Working with the action bar »
-- Working with contacts »
-- Working with the blocklist »
-- Working with geochats »
-- Working with privacy settings »
-- Working with the takeout API »
-- Working with saved messages »
-
-Also added documentation for streamed uploads and improved the docs for method queue, quick ACKs and content-related messages.
-The RPC error database » was also updated.
-The following new deep links were added:
-
-- Story links »
-- Boost links »
-- Direct mini app links »
-- Premium giftcode links »
-- Premium multigift links »
-
-This layer introduces the saved messages dialog list and several other saved messages improvements »!
-Schema changes
-New Methods
-
-- Added messages.getSavedDialogs - Returns the current saved dialog list, see here » for more info.
-- Added messages.getSavedHistory - Returns saved messages » forwarded from a specific peer
-- Added messages.deleteSavedHistory - Deletes messages forwarded from a specific peer to saved messages ».
-- Added messages.getPinnedSavedDialogs - Get pinned saved dialogs, see here » for more info.
-- Added messages.toggleSavedDialogPin - Pin or unpin a saved message dialog ».
-- Added messages.reorderPinnedSavedDialogs - Reorder pinned saved message dialogs ».
-
-Changed Methods
-
-- Added saved_peer_id parameter in messages.search
-- Added saved_peer_id parameter in messages.getSearchCounters
-- Added flags, saved_peer_id parameters in messages.getSearchResultsCalendar
-- Added flags, saved_peer_id parameters in messages.getSearchResultsPositions
-
-New Constructors
-
-- Added savedDialog - Represents a saved dialog ».
-- Added updateSavedDialogPinned - A saved message dialog was pinned/unpinned
-- Added updatePinnedSavedDialogs - Pinned saved dialogs » were updated
-- Added messages.savedDialogs - Represents some saved message dialogs ».
-- Added messages.savedDialogsSlice - Incomplete list of saved message dialogs » with messages and auxiliary data.
-- Added messages.savedDialogsNotModified - The saved dialogs haven't changed
-
-Changed Constructors
-
-- Added saved_peer_id parameter in message
-- Added saved_out, saved_from_id, saved_from_name, saved_date parameters in messageFwdHeader
-
-Schema
-message#76bec211 flags:# out:flags.1?true mentioned:flags.4?true media_unread:flags.5?true silent:flags.13?true post:flags.14?true from_scheduled:flags.18?true legacy:flags.19?true edit_hide:flags.21?true pinned:flags.24?true noforwards:flags.26?true invert_media:flags.27?true id:int from_id:flags.8?Peer peer_id:Peer saved_peer_id:flags.28?Peer fwd_from:flags.2?MessageFwdHeader via_bot_id:flags.11?long reply_to:flags.3?MessageReplyHeader date:int message:string media:flags.9?MessageMedia reply_markup:flags.6?ReplyMarkup entities:flags.7?Vector<MessageEntity> views:flags.10?int forwards:flags.10?int replies:flags.23?MessageReplies edit_date:flags.15?int post_author:flags.16?string grouped_id:flags.17?long reactions:flags.20?MessageReactions restriction_reason:flags.22?Vector<RestrictionReason> ttl_period:flags.25?int = Message;
-messageFwdHeader#4e4df4bb flags:# imported:flags.7?true saved_out:flags.11?true from_id:flags.0?Peer from_name:flags.5?string date:int channel_post:flags.2?int post_author:flags.3?string saved_from_peer:flags.4?Peer saved_from_msg_id:flags.4?int saved_from_id:flags.8?Peer saved_from_name:flags.9?string saved_date:flags.10?int psa_type:flags.6?string = MessageFwdHeader;
-savedDialog#bd87cb6c flags:# pinned:flags.2?true peer:Peer top_message:int = SavedDialog;
-updateSavedDialogPinned#aeaf9e74 flags:# pinned:flags.0?true peer:DialogPeer = Update;
-updatePinnedSavedDialogs#686c85a6 flags:# order:flags.0?Vector<DialogPeer> = Update;
-messages.savedDialogs#f83ae221 dialogs:Vector<SavedDialog> messages:Vector<Message> chats:Vector<Chat> users:Vector<User> = messages.SavedDialogs;
-messages.savedDialogsSlice#44ba9dd9 count:int dialogs:Vector<SavedDialog> messages:Vector<Message> chats:Vector<Chat> users:Vector<User> = messages.SavedDialogs;
-messages.savedDialogsNotModified#c01f6fe8 count:int = messages.SavedDialogs;
----functions---
-messages.search#a7b4e929 flags:# peer:InputPeer q:string from_id:flags.0?InputPeer saved_peer_id:flags.2?InputPeer top_msg_id:flags.1?int filter:MessagesFilter min_date:int max_date:int offset_id:int add_offset:int limit:int max_id:int min_id:int hash:long = messages.Messages;
-messages.getSearchCounters#1bbcf300 flags:# peer:InputPeer saved_peer_id:flags.2?InputPeer top_msg_id:flags.0?int filters:Vector<MessagesFilter> = Vector<messages.SearchCounter>;
-messages.getSearchResultsCalendar#6aa3f6bd flags:# peer:InputPeer saved_peer_id:flags.2?InputPeer filter:MessagesFilter offset_id:int offset_date:int = messages.SearchResultsCalendar;
-messages.getSearchResultsPositions#9c7f2f10 flags:# peer:InputPeer saved_peer_id:flags.2?InputPeer filter:MessagesFilter offset_id:int limit:int = messages.SearchResultsPositions;
-messages.getSavedDialogs#5381d21a flags:# exclude_pinned:flags.0?true offset_date:int offset_id:int offset_peer:InputPeer limit:int hash:long = messages.SavedDialogs;
-messages.getSavedHistory#3d9a414d peer:InputPeer offset_id:int offset_date:int add_offset:int limit:int max_id:int min_id:int hash:long = messages.Messages;
-messages.deleteSavedHistory#6e98102b flags:# peer:InputPeer max_id:int min_date:flags.2?int max_date:flags.3?int = messages.AffectedHistory;
-messages.getPinnedSavedDialogs#d63d94e0 = messages.SavedDialogs;
-messages.toggleSavedDialogPin#ac81bbde flags:# pinned:flags.0?true peer:InputDialogPeer = Bool;
-messages.reorderPinnedSavedDialogs#8b716587 flags:# force:flags.0?true order:Vector<InputDialogPeer> = Bool;
-Layer 169
-Allow requesting and sending more than one peer using keyboardButtonRequestPeer.
-Schema changes
-Changed Methods
-
-- Added requested_peers parameter, removed requested_peer parameter in messages.sendBotRequestedPeer
-
-Changed Constructors
-
-- Added peers parameter, removed peer parameter in messageActionRequestedPeer
-- Added max_quantity parameter in keyboardButtonRequestPeer
-
-Schema
-messageActionRequestedPeer#31518e9b button_id:int peers:Vector<Peer> = MessageAction;
-keyboardButtonRequestPeer#53d7bfd8 text:string button_id:int peer_type:RequestPeerType max_quantity:int = KeyboardButton;
----functions---
-messages.sendBotRequestedPeer#91b2d060 peer:InputPeer msg_id:int button_id:int requested_peers:Vector<InputPeer> = Updates;
-Layer 168
-Added support for emoji statuses, wallpapers and profile color palettes in channels, added support for custom prizes and public winners in giveaways through prize_description
and winners_are_visible
+messageMediaGiveawayResults, channel post embedding in stories and a new stories.getStoryReactionsList method to fetch reaction and interactions for channel stories and improved pagination in stats.getMessagePublicForwards.
-Also, bots now receive events about reactions.
-Schema changes
-New Methods
-
-- Added stories.getStoryReactionsList - Get the reaction and interaction list of a story posted to a channel, along with the sender of each reaction.
-- Added channels.updateEmojiStatus - Set an emoji status for a channel.
-- Added account.getChannelDefaultEmojiStatuses - Get a list of default suggested channel emoji statuses.
-- Added account.getChannelRestrictedStatusEmojis - Returns fetch the full list of custom emoji IDs » that cannot be used in channel emoji statuses ».
-
-Changed Methods
-
-- Changed type of stats.getMessagePublicForwards from messages.Messages to stats.PublicForwards
-- Added offset parameter, removed offset_rate, offset_peer, offset_id parameters in stats.getMessagePublicForwards
-- Added forwards_first parameter in stories.getStoryViewsList
-- Added for_profile parameter, changed type of color from int to flags.2?int in channels.updateColor
-
-Deleted Methods
-
-- Removed help.getAppChangelog
-
-New Constructors
-
-- Added messageMediaGiveawayResults - A giveaway with public winners has finished, this constructor contains info about the winners.
-- Added storyReaction - How a certain peer reacted to a story
-- Added storyReactionPublicForward - A certain peer has forwarded the story as a message to a public chat or channel.
-- Added storyReactionPublicRepost - A certain peer has reposted the story.
-- Added stories.storyReactionsList - List of peers that reacted to or intercated with a specific story
-- Added storyViewPublicForward - A certain peer has forwarded the story as a message to a public chat or channel.
-- Added storyViewPublicRepost - A certain peer has reposted the story.
-- Added channelAdminLogEventActionChangePeerColor - The message accent color was changed
-- Added channelAdminLogEventActionChangeProfilePeerColor - The profile accent color was changed
-- Added channelAdminLogEventActionChangeWallpaper - The wallpaper was changed
-- Added channelAdminLogEventActionChangeEmojiStatus - The emoji status was changed
-- Added inputStickerSetEmojiChannelDefaultStatuses - Default custom emoji status stickerset for channel statuses
-- Added mediaAreaChannelPost - Represents a channel post.
-- Added inputMediaAreaChannelPost - Represents a channel post
-- Added updateBotMessageReaction - Bots only: a user has changed their reactions on a message with public reactions.
-- Added updateBotMessageReactions - Bots only: the number of reactions on a message with anonymous reactions has changed.
-
-Changed Constructors
-
-- Added video, round, voice parameters in messageMediaDocument
-- Added channel_emoji_status parameter in stickerSet
-- Added profile_color, emoji_status, level parameters in channel
-- Added wallpaper parameter in channelFull
-- Added emoticon parameter in wallPaperSettings
-- Added views_count, forwards_count, chats parameters in stories.storyViewsList
-- Added winners_are_visible, prize_description parameters in inputStorePaymentPremiumGiveaway
-- Changed type of from_id from Peer to flags.4?Peer in payments.checkedGiftCode
-- Added winners_are_visible, prize_description parameters in messageMediaGiveaway
-- Added currency, amount, crypto_currency, crypto_amount parameters in messageActionGiftCode
-- Added channel_min_level parameter in help.peerColorOption
-
-Deleted Constructors
-
-- Removed channelAdminLogEventActionChangeColor
-- Removed channelAdminLogEventActionChangeBackgroundEmoji
-
-Schema
-messageMediaDocument#4cf4d72d flags:# nopremium:flags.3?true spoiler:flags.4?true video:flags.6?true round:flags.7?true voice:flags.8?true document:flags.0?Document alt_document:flags.5?Document ttl_seconds:flags.2?int = MessageMedia;
-stickerSet#2dd14edc flags:# archived:flags.1?true official:flags.2?true masks:flags.3?true animated:flags.5?true videos:flags.6?true emojis:flags.7?true text_color:flags.9?true channel_emoji_status:flags.10?true installed_date:flags.0?int id:long access_hash:long title:string short_name:string thumbs:flags.4?Vector<PhotoSize> thumb_dc_id:flags.4?int thumb_version:flags.4?int thumb_document_id:flags.8?long count:int hash:int = StickerSet;
-channel#0aadfc8f flags:# creator:flags.0?true left:flags.2?true broadcast:flags.5?true verified:flags.7?true megagroup:flags.8?true restricted:flags.9?true signatures:flags.11?true min:flags.12?true scam:flags.19?true has_link:flags.20?true has_geo:flags.21?true slowmode_enabled:flags.22?true call_active:flags.23?true call_not_empty:flags.24?true fake:flags.25?true gigagroup:flags.26?true noforwards:flags.27?true join_to_send:flags.28?true join_request:flags.29?true forum:flags.30?true flags2:# stories_hidden:flags2.1?true stories_hidden_min:flags2.2?true stories_unavailable:flags2.3?true id:long access_hash:flags.13?long title:string username:flags.6?string photo:ChatPhoto date:int restriction_reason:flags.9?Vector<RestrictionReason> admin_rights:flags.14?ChatAdminRights banned_rights:flags.15?ChatBannedRights default_banned_rights:flags.18?ChatBannedRights participants_count:flags.17?int usernames:flags2.0?Vector<Username> stories_max_id:flags2.4?int color:flags2.7?PeerColor profile_color:flags2.8?PeerColor emoji_status:flags2.9?EmojiStatus level:flags2.10?int = Chat;
-channelFull#0f2bcb6f flags:# can_view_participants:flags.3?true can_set_username:flags.6?true can_set_stickers:flags.7?true hidden_prehistory:flags.10?true can_set_location:flags.16?true has_scheduled:flags.19?true can_view_stats:flags.20?true blocked:flags.22?true flags2:# can_delete_channel:flags2.0?true antispam:flags2.1?true participants_hidden:flags2.2?true translations_disabled:flags2.3?true stories_pinned_available:flags2.5?true view_forum_as_messages:flags2.6?true id:long about:string participants_count:flags.0?int admins_count:flags.1?int kicked_count:flags.2?int banned_count:flags.2?int online_count:flags.13?int read_inbox_max_id:int read_outbox_max_id:int unread_count:int chat_photo:Photo notify_settings:PeerNotifySettings exported_invite:flags.23?ExportedChatInvite bot_info:Vector<BotInfo> migrated_from_chat_id:flags.4?long migrated_from_max_id:flags.4?int pinned_msg_id:flags.5?int stickerset:flags.8?StickerSet available_min_id:flags.9?int folder_id:flags.11?int linked_chat_id:flags.14?long location:flags.15?ChannelLocation slowmode_seconds:flags.17?int slowmode_next_send_date:flags.18?int stats_dc:flags.12?int pts:int call:flags.21?InputGroupCall ttl_period:flags.24?int pending_suggestions:flags.25?Vector<string> groupcall_default_join_as:flags.26?Peer theme_emoticon:flags.27?string requests_pending:flags.28?int recent_requesters:flags.28?Vector<long> default_send_as:flags.29?Peer available_reactions:flags.30?ChatReactions stories:flags2.4?PeerStories wallpaper:flags2.7?WallPaper = ChatFull;
-wallPaperSettings#372efcd0 flags:# blur:flags.1?true motion:flags.2?true background_color:flags.0?int second_background_color:flags.4?int third_background_color:flags.5?int fourth_background_color:flags.6?int intensity:flags.3?int rotation:flags.4?int emoticon:flags.7?string = WallPaperSettings;
-stories.storyViewsList#59d78fc5 flags:# count:int views_count:int forwards_count:int reactions_count:int views:Vector<StoryView> chats:Vector<Chat> users:Vector<User> next_offset:flags.0?string = stories.StoryViewsList;
-inputStorePaymentPremiumGiveaway#160544ca flags:# only_new_subscribers:flags.0?true winners_are_visible:flags.3?true boost_peer:InputPeer additional_peers:flags.1?Vector<InputPeer> countries_iso2:flags.2?Vector<string> prize_description:flags.4?string random_id:long until_date:int currency:string amount:long = InputStorePaymentPurpose;
-payments.checkedGiftCode#284a1096 flags:# via_giveaway:flags.2?true from_id:flags.4?Peer giveaway_msg_id:flags.3?int to_id:flags.0?long date:int months:int used_date:flags.1?int chats:Vector<Chat> users:Vector<User> = payments.CheckedGiftCode;
-messageMediaGiveaway#daad85b0 flags:# only_new_subscribers:flags.0?true winners_are_visible:flags.2?true channels:Vector<long> countries_iso2:flags.1?Vector<string> prize_description:flags.3?string quantity:int months:int until_date:int = MessageMedia;
-messageActionGiftCode#678c2e09 flags:# via_giveaway:flags.0?true unclaimed:flags.2?true boost_peer:flags.1?Peer months:int slug:string currency:flags.2?string amount:flags.2?long crypto_currency:flags.3?string crypto_amount:flags.3?long = MessageAction;
-help.peerColorOption#ef8430ab flags:# hidden:flags.0?true color_id:int colors:flags.1?help.PeerColorSet dark_colors:flags.2?help.PeerColorSet channel_min_level:flags.3?int = help.PeerColorOption;
-messageMediaGiveawayResults#c6991068 flags:# only_new_subscribers:flags.0?true refunded:flags.2?true channel_id:long additional_peers_count:flags.3?int launch_msg_id:int winners_count:int unclaimed_count:int winners:Vector<long> months:int prize_description:flags.1?string until_date:int = MessageMedia;
-storyReaction#6090d6d5 peer_id:Peer date:int reaction:Reaction = StoryReaction;
-storyReactionPublicForward#bbab2643 message:Message = StoryReaction;
-storyReactionPublicRepost#cfcd0f13 peer_id:Peer story:StoryItem = StoryReaction;
-stories.storyReactionsList#aa5f789c flags:# count:int reactions:Vector<StoryReaction> chats:Vector<Chat> users:Vector<User> next_offset:flags.0?string = stories.StoryReactionsList;
-storyViewPublicForward#9083670b flags:# blocked:flags.0?true blocked_my_stories_from:flags.1?true message:Message = StoryView;
-storyViewPublicRepost#bd74cf49 flags:# blocked:flags.0?true blocked_my_stories_from:flags.1?true peer_id:Peer story:StoryItem = StoryView;
-channelAdminLogEventActionChangePeerColor#5796e780 prev_value:PeerColor new_value:PeerColor = ChannelAdminLogEventAction;
-channelAdminLogEventActionChangeProfilePeerColor#5e477b25 prev_value:PeerColor new_value:PeerColor = ChannelAdminLogEventAction;
-channelAdminLogEventActionChangeWallpaper#31bb5d52 prev_value:WallPaper new_value:WallPaper = ChannelAdminLogEventAction;
-channelAdminLogEventActionChangeEmojiStatus#3ea9feb1 prev_value:EmojiStatus new_value:EmojiStatus = ChannelAdminLogEventAction;
-inputStickerSetEmojiChannelDefaultStatuses#49748553 = InputStickerSet;
-mediaAreaChannelPost#770416af coordinates:MediaAreaCoordinates channel_id:long msg_id:int = MediaArea;
-inputMediaAreaChannelPost#2271f2bf coordinates:MediaAreaCoordinates channel:InputChannel msg_id:int = MediaArea;
-updateBotMessageReaction#ac21d3ce peer:Peer msg_id:int date:int actor:Peer old_reactions:Vector<Reaction> new_reactions:Vector<Reaction> qts:int = Update;
-updateBotMessageReactions#09cb7759 peer:Peer msg_id:int date:int reactions:Vector<ReactionCount> qts:int = Update;
----functions---
-stats.getMessagePublicForwards#5f150144 channel:InputChannel msg_id:int offset:string limit:int = stats.PublicForwards;
-stories.getStoryViewsList#7ed23c57 flags:# just_contacts:flags.0?true reactions_first:flags.2?true forwards_first:flags.3?true peer:InputPeer q:flags.1?string id:int offset:string limit:int = stories.StoryViewsList;
-channels.updateColor#d8aa3671 flags:# for_profile:flags.1?true channel:InputChannel color:flags.2?int background_emoji_id:flags.0?long = Updates;
-stories.getStoryReactionsList#b9b2881f flags:# forwards_first:flags.2?true peer:InputPeer id:int reaction:flags.0?Reaction offset:flags.1?string limit:int = stories.StoryReactionsList;
-channels.updateEmojiStatus#f0d3e6a8 channel:InputChannel emoji_status:EmojiStatus = Updates;
-account.getChannelDefaultEmojiStatuses#7727a7d5 hash:long = account.EmojiStatuses;
-account.getChannelRestrictedStatusEmojis#35a9e0d5 hash:long = EmojiList;
-Layer 167
-Added support for reposting stories, profile colors, story statistics, channel recommendations, setting a wallpaper on both sides of a chat, syncing the "View as messages" setting for forums, audio transcription for non-Premium users, improved quotes, improved sponsored messages and improved methods for custom emoji stickersets.
-Schema changes
-New Methods
-
-- Added channels.toggleViewForumAsMessages - Users may also choose to display messages from all topics of a forum as if they were sent to a normal group, using a "View as messages" setting in the local client: this setting only affects the current account, and is synced to other logged in sessions using this method.
-- Added messages.searchEmojiStickerSets - Search for custom emoji stickersets »
-- Added channels.getChannelRecommendations - Obtain a list of similarly themed public channels, selected based on similarities in their subscriber bases.
-- Added stats.getStoryStats - Get statistics for a certain story.
-- Added stats.getStoryPublicForwards - Obtain forwards of a story as a message to public chats and reposts by public channels.
-- Added help.getPeerColors - Get the set of accent color palettes » that can be used for message accents.
-- Added help.getPeerProfileColors - Get the set of accent color palettes » that can be used in profile page backgrounds.
-
-Changed Methods
-
-- Added for_both, revert parameters in messages.setChatWallPaper
-- Added fwd_modified, fwd_from_id, fwd_from_story parameters in stories.sendStory
-- Added for_profile parameter, changed type of color from int to flags.2?int in account.updateColor
-
-New Constructors
-
-- Added updateChannelViewForumAsMessages - Users may also choose to display messages from all topics as if they were sent to a normal group, using a "View as messages" setting in the local client.
-- Added messageActionGiveawayResults - A giveaway has ended.
-- Added updatePeerWallpaper - The wallpaper » of a given peer has changed.
-- Added storyFwdHeader - Contains info about the original poster of a reposted story.
-- Added postInteractionCountersMessage - Interaction counters for a message.
-- Added postInteractionCountersStory - Interaction counters for a story.
-- Added stats.storyStats - Contains statistics about a story.
-- Added publicForwardMessage - Contains info about a forward of a story as a message.
-- Added publicForwardStory - Contains info about a forward of a story as a repost by a public channel.
-- Added stats.publicForwards - Contains info about the forwards of a story as a message to public chats and reposts by public channels.
-- Added peerColor - Represents a color palette ».
-- Added help.peerColorSet - Represents a color palette that can be used in message accents ».
-- Added help.peerColorProfileSet - Represents a color palette that can be used in profile pages ».
-- Added help.peerColorOption - Contains info about a color palette ».
-- Added help.peerColorsNotModified - The list of color palettes has not changed.
-- Added help.peerColors - Contains info about multiple color palettes ».
-
-Changed Constructors
-
-- Added view_forum_as_messages parameter in dialog
-- Added wallpaper_overridden parameter in userFull
-- Added profile_color parameter, removed background_emoji_id parameter, changed type of color from flags2.7?int to flags2.8?PeerColor in user
-- Removed background_emoji_id parameter, changed type of color from flags2.6?int to flags2.7?PeerColor in channel
-- Added view_forum_as_messages parameter in channelFull
-- Added reactions_per_post, views_per_story, shares_per_story, reactions_per_story, reactions_by_emotion_graph, story_interactions_graph, story_reactions_by_emotion_graph, recent_posts_interactions parameters, removed recent_message_interactions parameter in stats.broadcastStats
-- Added quote_offset parameter in messageReplyHeader
-- Added reactions_by_emotion_graph parameter in stats.messageStats
-- Added app, button_text parameters in sponsoredMessage
-- Added trial_remains_num, trial_remains_until_date parameters in messages.transcribedAudio
-- Added flags, same, for_both parameters in messageActionSetChatWallPaper
-- Added fwd_from parameter in storyItem
-- Added quote_offset parameter in inputReplyToMessage
-
-Deleted Constructors
-
-- Removed messageInteractionCounters
-- Removed messageActionSetSameChatWallPaper
-
-PUSH notification changes
-New PUSH notifications
-
-- Added CHANNEL_MESSAGE_GIVEAWAY -
{1} posted a giveaway of {2}x {3}m Premium subscriptions
-- Added CHAT_MESSAGE_GIVEAWAY -
{1} sent a giveaway of {3}x {4}m Premium subscriptions to the group {2}
-- Added CHAT_REACT_GIVEAWAY -
{1} reacted {3} in group {2} to your giveaway
-- Added MESSAGE_GIFTCODE -
{1} sent you a Gift Code for {2} of Telegram Premium
-- Added MESSAGE_GIVEAWAY -
{1} sent you a giveaway of {2}x {3}m Premium subscriptions
-- Added MESSAGE_SAME_WALLPAPER -
{1} set a same wallpaper for this chat
-- Added MESSAGE_WALLPAPER -
{1} set a new wallpaper for this chat
-- Added PINNED_GIVEAWAY -
{1} pinned a giveaway
-- Added REACT_GIVEAWAY -
{1} reacted {2} to your giveaway
-
-Schema
-dialog#d58a08c6 flags:# pinned:flags.2?true unread_mark:flags.3?true view_forum_as_messages:flags.6?true peer:Peer top_message:int read_inbox_max_id:int read_outbox_max_id:int unread_count:int unread_mentions_count:int unread_reactions_count:int notify_settings:PeerNotifySettings pts:flags.0?int draft:flags.1?DraftMessage folder_id:flags.4?int ttl_period:flags.5?int = Dialog;
-userFull#b9b12c6c flags:# blocked:flags.0?true phone_calls_available:flags.4?true phone_calls_private:flags.5?true can_pin_message:flags.7?true has_scheduled:flags.12?true video_calls_available:flags.13?true voice_messages_forbidden:flags.20?true translations_disabled:flags.23?true stories_pinned_available:flags.26?true blocked_my_stories_from:flags.27?true wallpaper_overridden:flags.28?true id:long about:flags.1?string settings:PeerSettings personal_photo:flags.21?Photo profile_photo:flags.2?Photo fallback_photo:flags.22?Photo notify_settings:PeerNotifySettings bot_info:flags.3?BotInfo pinned_msg_id:flags.6?int common_chats_count:int folder_id:flags.11?int ttl_period:flags.14?int theme_emoticon:flags.15?string private_forward_name:flags.16?string bot_group_admin_rights:flags.17?ChatAdminRights bot_broadcast_admin_rights:flags.18?ChatAdminRights premium_gifts:flags.19?Vector<PremiumGiftOption> wallpaper:flags.24?WallPaper stories:flags.25?PeerStories = UserFull;
-user#215c4438 flags:# self:flags.10?true contact:flags.11?true mutual_contact:flags.12?true deleted:flags.13?true bot:flags.14?true bot_chat_history:flags.15?true bot_nochats:flags.16?true verified:flags.17?true restricted:flags.18?true min:flags.20?true bot_inline_geo:flags.21?true support:flags.23?true scam:flags.24?true apply_min_photo:flags.25?true fake:flags.26?true bot_attach_menu:flags.27?true premium:flags.28?true attach_menu_enabled:flags.29?true flags2:# bot_can_edit:flags2.1?true close_friend:flags2.2?true stories_hidden:flags2.3?true stories_unavailable:flags2.4?true id:long access_hash:flags.0?long first_name:flags.1?string last_name:flags.2?string username:flags.3?string phone:flags.4?string photo:flags.5?UserProfilePhoto status:flags.6?UserStatus bot_info_version:flags.14?int restriction_reason:flags.18?Vector<RestrictionReason> bot_inline_placeholder:flags.19?string lang_code:flags.22?string emoji_status:flags.30?EmojiStatus usernames:flags2.0?Vector<Username> stories_max_id:flags2.5?int color:flags2.8?PeerColor profile_color:flags2.9?PeerColor = User;
-channel#8e87ccd8 flags:# creator:flags.0?true left:flags.2?true broadcast:flags.5?true verified:flags.7?true megagroup:flags.8?true restricted:flags.9?true signatures:flags.11?true min:flags.12?true scam:flags.19?true has_link:flags.20?true has_geo:flags.21?true slowmode_enabled:flags.22?true call_active:flags.23?true call_not_empty:flags.24?true fake:flags.25?true gigagroup:flags.26?true noforwards:flags.27?true join_to_send:flags.28?true join_request:flags.29?true forum:flags.30?true flags2:# stories_hidden:flags2.1?true stories_hidden_min:flags2.2?true stories_unavailable:flags2.3?true id:long access_hash:flags.13?long title:string username:flags.6?string photo:ChatPhoto date:int restriction_reason:flags.9?Vector<RestrictionReason> admin_rights:flags.14?ChatAdminRights banned_rights:flags.15?ChatBannedRights default_banned_rights:flags.18?ChatBannedRights participants_count:flags.17?int usernames:flags2.0?Vector<Username> stories_max_id:flags2.4?int color:flags2.7?PeerColor = Chat;
-channelFull#723027bd flags:# can_view_participants:flags.3?true can_set_username:flags.6?true can_set_stickers:flags.7?true hidden_prehistory:flags.10?true can_set_location:flags.16?true has_scheduled:flags.19?true can_view_stats:flags.20?true blocked:flags.22?true flags2:# can_delete_channel:flags2.0?true antispam:flags2.1?true participants_hidden:flags2.2?true translations_disabled:flags2.3?true stories_pinned_available:flags2.5?true view_forum_as_messages:flags2.6?true id:long about:string participants_count:flags.0?int admins_count:flags.1?int kicked_count:flags.2?int banned_count:flags.2?int online_count:flags.13?int read_inbox_max_id:int read_outbox_max_id:int unread_count:int chat_photo:Photo notify_settings:PeerNotifySettings exported_invite:flags.23?ExportedChatInvite bot_info:Vector<BotInfo> migrated_from_chat_id:flags.4?long migrated_from_max_id:flags.4?int pinned_msg_id:flags.5?int stickerset:flags.8?StickerSet available_min_id:flags.9?int folder_id:flags.11?int linked_chat_id:flags.14?long location:flags.15?ChannelLocation slowmode_seconds:flags.17?int slowmode_next_send_date:flags.18?int stats_dc:flags.12?int pts:int call:flags.21?InputGroupCall ttl_period:flags.24?int pending_suggestions:flags.25?Vector<string> groupcall_default_join_as:flags.26?Peer theme_emoticon:flags.27?string requests_pending:flags.28?int recent_requesters:flags.28?Vector<long> default_send_as:flags.29?Peer available_reactions:flags.30?ChatReactions stories:flags2.4?PeerStories = ChatFull;
-stats.broadcastStats#396ca5fc period:StatsDateRangeDays followers:StatsAbsValueAndPrev views_per_post:StatsAbsValueAndPrev shares_per_post:StatsAbsValueAndPrev reactions_per_post:StatsAbsValueAndPrev views_per_story:StatsAbsValueAndPrev shares_per_story:StatsAbsValueAndPrev reactions_per_story:StatsAbsValueAndPrev enabled_notifications:StatsPercentValue growth_graph:StatsGraph followers_graph:StatsGraph mute_graph:StatsGraph top_hours_graph:StatsGraph interactions_graph:StatsGraph iv_interactions_graph:StatsGraph views_by_source_graph:StatsGraph new_followers_by_source_graph:StatsGraph languages_graph:StatsGraph reactions_by_emotion_graph:StatsGraph story_interactions_graph:StatsGraph story_reactions_by_emotion_graph:StatsGraph recent_posts_interactions:Vector<PostInteractionCounters> = stats.BroadcastStats;
-messageReplyHeader#afbc09db flags:# reply_to_scheduled:flags.2?true forum_topic:flags.3?true quote:flags.9?true reply_to_msg_id:flags.4?int reply_to_peer_id:flags.0?Peer reply_from:flags.5?MessageFwdHeader reply_media:flags.8?MessageMedia reply_to_top_id:flags.1?int quote_text:flags.6?string quote_entities:flags.7?Vector<MessageEntity> quote_offset:flags.10?int = MessageReplyHeader;
-stats.messageStats#7fe91c14 views_graph:StatsGraph reactions_by_emotion_graph:StatsGraph = stats.MessageStats;
-sponsoredMessage#ed5383f7 flags:# recommended:flags.5?true show_peer_photo:flags.6?true random_id:bytes from_id:flags.3?Peer chat_invite:flags.4?ChatInvite chat_invite_hash:flags.4?string channel_post:flags.2?int start_param:flags.0?string webpage:flags.9?SponsoredWebPage app:flags.10?BotApp message:string entities:flags.1?Vector<MessageEntity> button_text:flags.11?string sponsor_info:flags.7?string additional_info:flags.8?string = SponsoredMessage;
-messages.transcribedAudio#cfb9d957 flags:# pending:flags.0?true transcription_id:long text:string trial_remains_num:flags.1?int trial_remains_until_date:flags.1?int = messages.TranscribedAudio;
-messageActionSetChatWallPaper#5060a3f4 flags:# same:flags.0?true for_both:flags.1?true wallpaper:WallPaper = MessageAction;
-storyItem#af6365a1 flags:# pinned:flags.5?true public:flags.7?true close_friends:flags.8?true min:flags.9?true noforwards:flags.10?true edited:flags.11?true contacts:flags.12?true selected_contacts:flags.13?true out:flags.16?true id:int date:int fwd_from:flags.17?StoryFwdHeader expire_date:int caption:flags.0?string entities:flags.1?Vector<MessageEntity> media:MessageMedia media_areas:flags.14?Vector<MediaArea> privacy:flags.2?Vector<PrivacyRule> views:flags.3?StoryViews sent_reaction:flags.15?Reaction = StoryItem;
-inputReplyToMessage#22c0f6d5 flags:# reply_to_msg_id:int top_msg_id:flags.0?int reply_to_peer_id:flags.1?InputPeer quote_text:flags.2?string quote_entities:flags.3?Vector<MessageEntity> quote_offset:flags.4?int = InputReplyTo;
-updateChannelViewForumAsMessages#07b68920 channel_id:long enabled:Bool = Update;
-messageActionGiveawayResults#2a9fadc5 winners_count:int unclaimed_count:int = MessageAction;
-updatePeerWallpaper#ae3f101d flags:# wallpaper_overridden:flags.1?true peer:Peer wallpaper:flags.0?WallPaper = Update;
-storyFwdHeader#b826e150 flags:# modified:flags.3?true from:flags.0?Peer from_name:flags.1?string story_id:flags.2?int = StoryFwdHeader;
-postInteractionCountersMessage#e7058e7f msg_id:int views:int forwards:int reactions:int = PostInteractionCounters;
-postInteractionCountersStory#8a480e27 story_id:int views:int forwards:int reactions:int = PostInteractionCounters;
-stats.storyStats#50cd067c views_graph:StatsGraph reactions_by_emotion_graph:StatsGraph = stats.StoryStats;
-publicForwardMessage#01f2bf4a message:Message = PublicForward;
-publicForwardStory#edf3add0 peer:Peer story:StoryItem = PublicForward;
-stats.publicForwards#93037e20 flags:# count:int forwards:Vector<PublicForward> next_offset:flags.0?string chats:Vector<Chat> users:Vector<User> = stats.PublicForwards;
-peerColor#b54b5acf flags:# color:flags.0?int background_emoji_id:flags.1?long = PeerColor;
-help.peerColorSet#26219a58 colors:Vector<int> = help.PeerColorSet;
-help.peerColorProfileSet#767d61eb palette_colors:Vector<int> bg_colors:Vector<int> story_colors:Vector<int> = help.PeerColorSet;
-help.peerColorOption#135bd42f flags:# hidden:flags.0?true color_id:int colors:flags.1?help.PeerColorSet dark_colors:flags.2?help.PeerColorSet = help.PeerColorOption;
-help.peerColorsNotModified#2ba1f5ce = help.PeerColors;
-help.peerColors#00f8ed08 hash:int colors:Vector<help.PeerColorOption> = help.PeerColors;
----functions---
-messages.setChatWallPaper#8ffacae1 flags:# for_both:flags.3?true revert:flags.4?true peer:InputPeer wallpaper:flags.0?InputWallPaper settings:flags.2?WallPaperSettings id:flags.1?int = Updates;
-stories.sendStory#e4e6694b flags:# pinned:flags.2?true noforwards:flags.4?true fwd_modified:flags.7?true peer:InputPeer media:InputMedia media_areas:flags.5?Vector<MediaArea> caption:flags.0?string entities:flags.1?Vector<MessageEntity> privacy_rules:Vector<InputPrivacyRule> random_id:long period:flags.3?int fwd_from_id:flags.6?InputPeer fwd_from_story:flags.6?int = Updates;
-account.updateColor#7cefa15d flags:# for_profile:flags.1?true color:flags.2?int background_emoji_id:flags.0?long = Bool;
-channels.toggleViewForumAsMessages#9738bb15 channel:InputChannel enabled:Bool = Updates;
-messages.searchEmojiStickerSets#92b4494c flags:# exclude_featured:flags.0?true q:string hash:long = messages.FoundStickerSets;
-channels.getChannelRecommendations#83b70d97 channel:InputChannel = messages.Chats;
-stats.getStoryStats#374fef40 flags:# dark:flags.0?true peer:InputPeer id:int = stats.StoryStats;
-stats.getStoryPublicForwards#a6437ef6 peer:InputPeer id:int offset:string limit:int = stats.PublicForwards;
-help.getPeerColors#da80f42f hash:int = help.PeerColors;
-help.getPeerProfileColors#abcfa9fd hash:int = help.PeerColors;
-Layer 166
-Introducing giveaways, gift code links, accent colors, quotes, improved boosts and improved webpage previews.
-Schema changes
-New Methods
-
-- Added payments.getPremiumGiftCodeOptions - Obtain a list of Telegram Premium giveaway/gift code » options.
-- Added payments.checkGiftCode - Obtain information about a Telegram Premium giftcode »
-- Added payments.applyGiftCode - Apply a Telegram Premium giftcode »
-- Added payments.getGiveawayInfo - Obtain information about a Telegram Premium giveaway ».
-- Added payments.launchPrepaidGiveaway - Launch a prepaid giveaway ».
-- Added account.updateColor - Update the accent color and background custom emoji » of the current account.
-- Added channels.updateColor - Update the accent color and background custom emoji » of a channel.
-- Added account.getDefaultBackgroundEmojis - Get a set of suggested custom emoji stickers that can be used in an accent color pattern.
-- Added premium.getBoostsList - Obtains info about the boosts that were applied to a certain channel (admins only)
-- Added premium.getMyBoosts - Obtain which peers are we currently boosting, and how many boost slots we have left.
-- Added premium.applyBoost - Apply one or more boosts » to a peer.
-- Added premium.getBoostsStatus - Gets the current number of boosts of a channel.
-- Added premium.getUserBoosts - Returns the lists of boost that were applied to a channel by a specific user (admins only)
-
-Changed Methods
-
-- Added invert_media parameter in messages.sendMessage
-- Added invert_media parameter in messages.sendMedia
-- Added invert_media parameter in messages.editMessage
-- Added invert_media parameter in messages.editInlineBotMessage
-- Added invert_media, reply_to, media parameters, removed reply_to_msg_id, top_msg_id parameters in messages.saveDraft
-- Changed type of messages.getWebPage from WebPage to messages.WebPage
-- Added invert_media parameter in messages.sendMultiMedia
-
-Deleted Methods
-
-- Removed stories.getBoostsStatus
-- Removed stories.getBoostersList
-- Removed stories.canApplyBoost
-- Removed stories.applyBoost
-
-New Constructors
-
-- Added messages.webPage - Represents an Instant View webpage.
-- Added inputStorePaymentPremiumGiftCode - Used to gift Telegram Premium subscriptions only to some specific subscribers of a channel or to some of our contacts, see here » for more info on giveaways and gifts.
-- Added inputStorePaymentPremiumGiveaway - Used to pay for a giveaway, see here » for more info.
-- Added inputInvoicePremiumGiftCode - Used if the user wishes to start a channel giveaway or send some giftcodes to members of a channel, in exchange for boosts.
-- Added premiumGiftCodeOption - Contains info about a giveaway/gift option.
-- Added payments.checkedGiftCode - Contains info about a Telegram Premium giftcode link.
-- Added messageMediaGiveaway - Contains info about a giveaway, see here » for more info.
-- Added messageActionGiftCode - Contains a Telegram Premium giftcode link.
-- Added messageActionGiveawayLaunch - A giveaway was started.
-- Added payments.giveawayInfo - Contains info about an ongoing giveaway.
-- Added payments.giveawayInfoResults - A giveaway has ended.
-- Added messageEntityBlockquote - Message entity representing a block quote.
-- Added prepaidGiveaway - Contains info about a prepaid giveaway ».
-- Added inputMediaWebPage - Specifies options that will be used to generate the link preview for the caption, or even a standalone link preview without an attached message.
-- Added inputBotInlineMessageMediaWebPage - Specifies options that will be used to generate the link preview for the message, or even a standalone link preview without an attached message.
-- Added botInlineMessageMediaWebPage - Specifies options that must be used to generate the link preview for the message, or even a standalone link preview without an attached message.
-- Added channelAdminLogEventActionChangeColor - The background profile color » of a channel was changed.
-- Added channelAdminLogEventActionChangeBackgroundEmoji - The custom emoji used to generate the pattern of the background profile color » of a channel was changed.
-- Added boost - Info about one or more boosts applied by a specific user.
-- Added premium.boostsList - List of boosts that were applied to a peer by multiple users.
-- Added myBoost - Contains information about a single boost slot ».
-- Added premium.myBoosts - A list of peers we are currently boosting, and how many boost slots we have left.
-- Added premium.boostsStatus - Contains info about the current boost status of a peer.
-- Added updateBotChatBoost - A channel boost has changed (bots only)
-
-Changed Constructors
-
-- Added invert_media parameter in message
-- Added invert_media parameter in updateServiceNotification
-- Added flags, url parameters in webPageEmpty
-- Added flags, url parameters in webPagePending
-- Added has_large_media parameter in webPage
-- Added flags, force_large_media, force_small_media, manual, safe parameters in messageMediaWebPage
-- Added color parameter in chatInvite
-- Added text_color parameter in stickerSet
-- Added color, background_emoji_id parameters in user
-- Added color, background_emoji_id parameters in channel
-- Added invert_media parameter in inputBotInlineMessageMediaAuto
-- Added invert_media parameter in inputBotInlineMessageText
-- Added invert_media parameter in botInlineMessageMediaAuto
-- Added invert_media parameter in botInlineMessageText
-- Added invert_media, reply_to, media parameters, removed reply_to_msg_id parameter in draftMessage
-- Added quote, reply_from, reply_media, quote_text, quote_entities parameters, changed type of reply_to_msg_id from int to flags.4?int in messageReplyHeader
-- Added reply_to_peer_id, quote_text, quote_entities parameters in inputReplyToMessage
-
-Deleted Constructors
-
-- Removed stories.boostsStatus
-- Removed stories.canApplyBoostOk
-- Removed stories.canApplyBoostReplace
-- Removed booster
-- Removed stories.boostersList
-
-Schema
-message#38116ee0 flags:# out:flags.1?true mentioned:flags.4?true media_unread:flags.5?true silent:flags.13?true post:flags.14?true from_scheduled:flags.18?true legacy:flags.19?true edit_hide:flags.21?true pinned:flags.24?true noforwards:flags.26?true invert_media:flags.27?true id:int from_id:flags.8?Peer peer_id:Peer fwd_from:flags.2?MessageFwdHeader via_bot_id:flags.11?long reply_to:flags.3?MessageReplyHeader date:int message:string media:flags.9?MessageMedia reply_markup:flags.6?ReplyMarkup entities:flags.7?Vector<MessageEntity> views:flags.10?int forwards:flags.10?int replies:flags.23?MessageReplies edit_date:flags.15?int post_author:flags.16?string grouped_id:flags.17?long reactions:flags.20?MessageReactions restriction_reason:flags.22?Vector<RestrictionReason> ttl_period:flags.25?int = Message;
-updateServiceNotification#ebe46819 flags:# popup:flags.0?true invert_media:flags.2?true inbox_date:flags.1?int type:string message:string media:MessageMedia entities:Vector<MessageEntity> = Update;
-webPageEmpty#211a1788 flags:# id:long url:flags.0?string = WebPage;
-webPagePending#b0d13e47 flags:# id:long url:flags.0?string date:int = WebPage;
-webPage#e89c45b2 flags:# has_large_media:flags.13?true id:long url:string display_url:string hash:int type:flags.0?string site_name:flags.1?string title:flags.2?string description:flags.3?string photo:flags.4?Photo embed_url:flags.5?string embed_type:flags.5?string embed_width:flags.6?int embed_height:flags.6?int duration:flags.7?int author:flags.8?string document:flags.9?Document cached_page:flags.10?Page attributes:flags.12?Vector<WebPageAttribute> = WebPage;
-messageMediaWebPage#ddf10c3b flags:# force_large_media:flags.0?true force_small_media:flags.1?true manual:flags.3?true safe:flags.4?true webpage:WebPage = MessageMedia;
-chatInvite#cde0ec40 flags:# channel:flags.0?true broadcast:flags.1?true public:flags.2?true megagroup:flags.3?true request_needed:flags.6?true verified:flags.7?true scam:flags.8?true fake:flags.9?true title:string about:flags.5?string photo:Photo participants_count:int participants:flags.4?Vector<User> color:int = ChatInvite;
-stickerSet#2dd14edc flags:# archived:flags.1?true official:flags.2?true masks:flags.3?true animated:flags.5?true videos:flags.6?true emojis:flags.7?true text_color:flags.9?true installed_date:flags.0?int id:long access_hash:long title:string short_name:string thumbs:flags.4?Vector<PhotoSize> thumb_dc_id:flags.4?int thumb_version:flags.4?int thumb_document_id:flags.8?long count:int hash:int = StickerSet;
-user#eb602f25 flags:# self:flags.10?true contact:flags.11?true mutual_contact:flags.12?true deleted:flags.13?true bot:flags.14?true bot_chat_history:flags.15?true bot_nochats:flags.16?true verified:flags.17?true restricted:flags.18?true min:flags.20?true bot_inline_geo:flags.21?true support:flags.23?true scam:flags.24?true apply_min_photo:flags.25?true fake:flags.26?true bot_attach_menu:flags.27?true premium:flags.28?true attach_menu_enabled:flags.29?true flags2:# bot_can_edit:flags2.1?true close_friend:flags2.2?true stories_hidden:flags2.3?true stories_unavailable:flags2.4?true id:long access_hash:flags.0?long first_name:flags.1?string last_name:flags.2?string username:flags.3?string phone:flags.4?string photo:flags.5?UserProfilePhoto status:flags.6?UserStatus bot_info_version:flags.14?int restriction_reason:flags.18?Vector<RestrictionReason> bot_inline_placeholder:flags.19?string lang_code:flags.22?string emoji_status:flags.30?EmojiStatus usernames:flags2.0?Vector<Username> stories_max_id:flags2.5?int color:flags2.7?int background_emoji_id:flags2.6?long = User;
-channel#1981ea7e flags:# creator:flags.0?true left:flags.2?true broadcast:flags.5?true verified:flags.7?true megagroup:flags.8?true restricted:flags.9?true signatures:flags.11?true min:flags.12?true scam:flags.19?true has_link:flags.20?true has_geo:flags.21?true slowmode_enabled:flags.22?true call_active:flags.23?true call_not_empty:flags.24?true fake:flags.25?true gigagroup:flags.26?true noforwards:flags.27?true join_to_send:flags.28?true join_request:flags.29?true forum:flags.30?true flags2:# stories_hidden:flags2.1?true stories_hidden_min:flags2.2?true stories_unavailable:flags2.3?true id:long access_hash:flags.13?long title:string username:flags.6?string photo:ChatPhoto date:int restriction_reason:flags.9?Vector<RestrictionReason> admin_rights:flags.14?ChatAdminRights banned_rights:flags.15?ChatBannedRights default_banned_rights:flags.18?ChatBannedRights participants_count:flags.17?int usernames:flags2.0?Vector<Username> stories_max_id:flags2.4?int color:flags2.6?int background_emoji_id:flags2.5?long = Chat;
-inputBotInlineMessageMediaAuto#3380c786 flags:# invert_media:flags.3?true message:string entities:flags.1?Vector<MessageEntity> reply_markup:flags.2?ReplyMarkup = InputBotInlineMessage;
-inputBotInlineMessageText#3dcd7a87 flags:# no_webpage:flags.0?true invert_media:flags.3?true message:string entities:flags.1?Vector<MessageEntity> reply_markup:flags.2?ReplyMarkup = InputBotInlineMessage;
-botInlineMessageMediaAuto#764cf810 flags:# invert_media:flags.3?true message:string entities:flags.1?Vector<MessageEntity> reply_markup:flags.2?ReplyMarkup = BotInlineMessage;
-botInlineMessageText#8c7f65e2 flags:# no_webpage:flags.0?true invert_media:flags.3?true message:string entities:flags.1?Vector<MessageEntity> reply_markup:flags.2?ReplyMarkup = BotInlineMessage;
-draftMessage#3fccf7ef flags:# no_webpage:flags.1?true invert_media:flags.6?true reply_to:flags.4?InputReplyTo message:string entities:flags.3?Vector<MessageEntity> media:flags.5?InputMedia date:int = DraftMessage;
-messageReplyHeader#6eebcabd flags:# reply_to_scheduled:flags.2?true forum_topic:flags.3?true quote:flags.9?true reply_to_msg_id:flags.4?int reply_to_peer_id:flags.0?Peer reply_from:flags.5?MessageFwdHeader reply_media:flags.8?MessageMedia reply_to_top_id:flags.1?int quote_text:flags.6?string quote_entities:flags.7?Vector<MessageEntity> = MessageReplyHeader;
-inputReplyToMessage#073ec805 flags:# reply_to_msg_id:int top_msg_id:flags.0?int reply_to_peer_id:flags.1?InputPeer quote_text:flags.2?string quote_entities:flags.3?Vector<MessageEntity> = InputReplyTo;
-messages.webPage#fd5e12bd webpage:WebPage chats:Vector<Chat> users:Vector<User> = messages.WebPage;
-inputStorePaymentPremiumGiftCode#a3805f3f flags:# users:Vector<InputUser> boost_peer:flags.0?InputPeer currency:string amount:long = InputStorePaymentPurpose;
-inputStorePaymentPremiumGiveaway#7c9375e6 flags:# only_new_subscribers:flags.0?true boost_peer:InputPeer additional_peers:flags.1?Vector<InputPeer> countries_iso2:flags.2?Vector<string> random_id:long until_date:int currency:string amount:long = InputStorePaymentPurpose;
-inputInvoicePremiumGiftCode#98986c0d purpose:InputStorePaymentPurpose option:PremiumGiftCodeOption = InputInvoice;
-premiumGiftCodeOption#257e962b flags:# users:int months:int store_product:flags.0?string store_quantity:flags.1?int currency:string amount:long = PremiumGiftCodeOption;
-payments.checkedGiftCode#b722f158 flags:# via_giveaway:flags.2?true from_id:Peer giveaway_msg_id:flags.3?int to_id:flags.0?long date:int months:int used_date:flags.1?int chats:Vector<Chat> users:Vector<User> = payments.CheckedGiftCode;
-messageMediaGiveaway#58260664 flags:# only_new_subscribers:flags.0?true channels:Vector<long> countries_iso2:flags.1?Vector<string> quantity:int months:int until_date:int = MessageMedia;
-messageActionGiftCode#d2cfdb0e flags:# via_giveaway:flags.0?true unclaimed:flags.2?true boost_peer:flags.1?Peer months:int slug:string = MessageAction;
-messageActionGiveawayLaunch#332ba9ed = MessageAction;
-payments.giveawayInfo#4367daa0 flags:# participating:flags.0?true preparing_results:flags.3?true start_date:int joined_too_early_date:flags.1?int admin_disallowed_chat_id:flags.2?long disallowed_country:flags.4?string = payments.GiveawayInfo;
-payments.giveawayInfoResults#00cd5570 flags:# winner:flags.0?true refunded:flags.1?true start_date:int gift_code_slug:flags.0?string finish_date:int winners_count:int activated_count:int = payments.GiveawayInfo;
-messageEntityBlockquote#020df5d0 offset:int length:int = MessageEntity;
-prepaidGiveaway#b2539d54 id:long months:int quantity:int date:int = PrepaidGiveaway;
-inputMediaWebPage#c21b8849 flags:# force_large_media:flags.0?true force_small_media:flags.1?true optional:flags.2?true url:string = InputMedia;
-inputBotInlineMessageMediaWebPage#bddcc510 flags:# invert_media:flags.3?true force_large_media:flags.4?true force_small_media:flags.5?true optional:flags.6?true message:string entities:flags.1?Vector<MessageEntity> url:string reply_markup:flags.2?ReplyMarkup = InputBotInlineMessage;
-botInlineMessageMediaWebPage#809ad9a6 flags:# invert_media:flags.3?true force_large_media:flags.4?true force_small_media:flags.5?true manual:flags.7?true safe:flags.8?true message:string entities:flags.1?Vector<MessageEntity> url:string reply_markup:flags.2?ReplyMarkup = BotInlineMessage;
-channelAdminLogEventActionChangeColor#3c2b247b prev_value:int new_value:int = ChannelAdminLogEventAction;
-channelAdminLogEventActionChangeBackgroundEmoji#445fc434 prev_value:long new_value:long = ChannelAdminLogEventAction;
-boost#2a1c8c71 flags:# gift:flags.1?true giveaway:flags.2?true unclaimed:flags.3?true id:string user_id:flags.0?long giveaway_msg_id:flags.2?int date:int expires:int used_gift_slug:flags.4?string multiplier:flags.5?int = Boost;
-premium.boostsList#86f8613c flags:# count:int boosts:Vector<Boost> next_offset:flags.0?string users:Vector<User> = premium.BoostsList;
-myBoost#c448415c flags:# slot:int peer:flags.0?Peer date:int expires:int cooldown_until_date:flags.1?int = MyBoost;
-premium.myBoosts#9ae228e2 my_boosts:Vector<MyBoost> chats:Vector<Chat> users:Vector<User> = premium.MyBoosts;
-premium.boostsStatus#4959427a flags:# my_boost:flags.2?true level:int current_level_boosts:int boosts:int gift_boosts:flags.4?int next_level_boosts:flags.0?int premium_audience:flags.1?StatsPercentValue boost_url:string prepaid_giveaways:flags.3?Vector<PrepaidGiveaway> my_boost_slots:flags.2?Vector<int> = premium.BoostsStatus;
-updateBotChatBoost#904dd49c peer:Peer boost:Boost qts:int = Update;
----functions---
-messages.sendMessage#280d096f flags:# no_webpage:flags.1?true silent:flags.5?true background:flags.6?true clear_draft:flags.7?true noforwards:flags.14?true update_stickersets_order:flags.15?true invert_media:flags.16?true peer:InputPeer reply_to:flags.0?InputReplyTo message:string random_id:long reply_markup:flags.2?ReplyMarkup entities:flags.3?Vector<MessageEntity> schedule_date:flags.10?int send_as:flags.13?InputPeer = Updates;
-messages.sendMedia#72ccc23d flags:# silent:flags.5?true background:flags.6?true clear_draft:flags.7?true noforwards:flags.14?true update_stickersets_order:flags.15?true invert_media:flags.16?true peer:InputPeer reply_to:flags.0?InputReplyTo media:InputMedia message:string random_id:long reply_markup:flags.2?ReplyMarkup entities:flags.3?Vector<MessageEntity> schedule_date:flags.10?int send_as:flags.13?InputPeer = Updates;
-messages.editMessage#48f71778 flags:# no_webpage:flags.1?true invert_media:flags.16?true peer:InputPeer id:int message:flags.11?string media:flags.14?InputMedia reply_markup:flags.2?ReplyMarkup entities:flags.3?Vector<MessageEntity> schedule_date:flags.15?int = Updates;
-messages.editInlineBotMessage#83557dba flags:# no_webpage:flags.1?true invert_media:flags.16?true id:InputBotInlineMessageID message:flags.11?string media:flags.14?InputMedia reply_markup:flags.2?ReplyMarkup entities:flags.3?Vector<MessageEntity> = Bool;
-messages.saveDraft#7ff3b806 flags:# no_webpage:flags.1?true invert_media:flags.6?true reply_to:flags.4?InputReplyTo peer:InputPeer message:string entities:flags.3?Vector<MessageEntity> media:flags.5?InputMedia = Bool;
-messages.getWebPage#8d9692a3 url:string hash:int = messages.WebPage;
-messages.sendMultiMedia#456e8987 flags:# silent:flags.5?true background:flags.6?true clear_draft:flags.7?true noforwards:flags.14?true update_stickersets_order:flags.15?true invert_media:flags.16?true peer:InputPeer reply_to:flags.0?InputReplyTo multi_media:Vector<InputSingleMedia> schedule_date:flags.10?int send_as:flags.13?InputPeer = Updates;
-payments.getPremiumGiftCodeOptions#2757ba54 flags:# boost_peer:flags.0?InputPeer = Vector<PremiumGiftCodeOption>;
-payments.checkGiftCode#8e51b4c1 slug:string = payments.CheckedGiftCode;
-payments.applyGiftCode#f6e26854 slug:string = Updates;
-payments.getGiveawayInfo#f4239425 peer:InputPeer msg_id:int = payments.GiveawayInfo;
-payments.launchPrepaidGiveaway#5ff58f20 peer:InputPeer giveaway_id:long purpose:InputStorePaymentPurpose = Updates;
-account.updateColor#a001cc43 flags:# color:int background_emoji_id:flags.0?long = Bool;
-channels.updateColor#621a201f flags:# channel:InputChannel color:int background_emoji_id:flags.0?long = Updates;
-account.getDefaultBackgroundEmojis#a60ab9ce hash:long = EmojiList;
-premium.getBoostsList#60f67660 flags:# gifts:flags.0?true peer:InputPeer offset:string limit:int = premium.BoostsList;
-premium.getMyBoosts#0be77b4a = premium.MyBoosts;
-premium.applyBoost#6b7da746 flags:# slots:flags.0?Vector<int> peer:InputPeer = premium.MyBoosts;
-premium.getBoostsStatus#042f1f61 peer:InputPeer = premium.BoostsStatus;
-premium.getUserBoosts#39854d1f peer:InputPeer user_id:InputUser = premium.BoostsList;
-Layer 164
-Introducing Telegram Stories, channel boosts, session confirmation, side menu Mini Apps, direct link Mini Apps, custom methods and multiple new events for Mini Apps and a close friends list.
-A new story
premium feature identifier was added.
-The following new web events were also added to provide more functionality to mini apps:
-
-- web_app_request_write_access »
-- web_app_request_phone »
-- web_app_invoke_custom_method »
-- web_app_read_text_from_clipboard »
-- web_app_open_scan_qr_popup »
-- web_app_close_scan_qr_popup »
-- web_app_setup_settings_button »
-
-Also, the following changes were made to existing web events:
-
-- web_app_open_link » events have now a 1-second inactivity TTL instead of 10 seconds, see here » for more info.
-- web_app_open_link » now has an optional
try_instant_view
field that if set, equal to true
and if the scheme of the passed url
is either http
or https
, indicates the link should be opened in Instant View mode if possible.
-
-Schema changes
-New Methods
-
-- Added stories.activateStealthMode - Activates stories stealth mode, see here » for more info.
-- Added contacts.setBlocked - Replace the contents of an entire blocklist, see here for more info ».
-- Added stories.sendReaction - React to a story.
-- Added bots.canSendMessage - Check whether the specified bot can send us messages
-- Added bots.allowSendMessage - Allow the specified bot to send us messages
-- Added bots.invokeWebViewCustomMethod - Send a custom request from a mini bot app, triggered by a web_app_invoke_custom_method event ».
-- Added stories.getPeerStories - Fetch the full active story list of a specific peer.
-- Added stories.getAllReadPeerStories - Obtain the latest read story ID for all peers when first logging in, returned as a list of updateReadStories updates, see here » for more info.
-- Added stories.getPeerMaxIDs - Get the IDs of the maximum read stories for a set of peers.
-- Added stories.getChatsToSend - Obtain a list of channels where the user can post stories
-- Added stories.togglePeerStoriesHidden - Hide the active stories of a user, preventing them from being displayed on the action bar on the homescreen, see here » for more info.
-- Added stories.getBoostsStatus - Get the current boost status of a channel, see here » for more info on boosts.
-- Added stories.getBoostersList - Obtain info about the users currently boosting a channel, see here » for more info about boosts.
-- Added stories.canApplyBoost - Check whether a channel can be boosted, see here for more info ».
-- Added stories.applyBoost - Boost » a channel, leveling it up and granting it permission to post stories ».
-
-Changed Methods
-
-- Added flags, my_stories_from parameters in contacts.block
-- Added flags, my_stories_from parameters in contacts.unblock
-- Added flags, my_stories_from parameters in contacts.getBlocked
-- Added confirmed parameter in account.changeAuthorizationSettings
-- Added from_side_menu, start_param parameters, changed type of url from string to flags.3?string in messages.requestSimpleWebView
-- Added peer parameter in stories.canSendStory
-- Added peer, media_areas parameters in stories.sendStory
-- Added peer, media_areas parameters in stories.editStory
-- Added peer parameter in stories.deleteStories
-- Added peer parameter in stories.togglePinned
-- Added peer parameter, removed user_id parameter in stories.getPinnedStories
-- Added peer parameter in stories.getStoriesArchive
-- Added peer parameter, removed user_id parameter in stories.getStoriesByID
-- Added peer parameter, removed user_id parameter in stories.readStories
-- Added peer parameter, removed user_id parameter in stories.incrementStoryViews
-- Added flags, just_contacts, reactions_first, peer, q, offset parameters, removed offset_date, offset_id parameters in stories.getStoryViewsList
-- Added peer parameter in stories.getStoriesViews
-- Added peer parameter, removed user_id parameter in stories.exportStoryLink
-- Added peer parameter, removed user_id parameter in stories.report
-
-Deleted Methods
-
-- Removed contacts.toggleStoriesHidden
-- Removed stories.getUserStories
-- Removed stories.getAllReadUserStories
-- Removed users.getStoriesMaxIDs
-
-New Constructors
-
-- Added updateNewAuthorization - A new session logged into the current user's account through an unknown device.
-- Added storiesStealthMode - Information about the current stealth mode session.
-- Added updateStoriesStealthMode - Indicates that stories stealth mode was activated.
-- Added mediaAreaCoordinates - Coordinates and size of a clicable rectangular area on top of a story.
-- Added mediaAreaVenue - Represents a location tag attached to a story, with additional venue information.
-- Added inputMediaAreaVenue - Represents a location tag attached to a story, with additional venue information.
-- Added mediaAreaGeoPoint - Represents a geolocation tag attached to a story.
-- Added updateSentStoryReaction - Indicates we reacted to a story ».
-- Added mediaAreaSuggestedReaction - Represents a reaction bubble.
-- Added peerStories - Stories associated to a peer
-- Added stories.peerStories - Active story list of a specific peer.
-- Added stories.boostsStatus - The current boost status » of a channel.
-- Added stories.canApplyBoostOk - We're not boosting any channel, and we can freely boost the specified channel.
-- Added stories.canApplyBoostReplace - We're boosting another channel, but we can freely boost the specified channel.
-- Added booster - Info about a boost made by a specific user.
-- Added stories.boostersList - Info about the users currently boosting the channel.
-
-Changed Constructors
-
-- Removed view_forum_as_messages parameter in dialog
-- Added blocked_my_stories_from parameter, changed type of stories from flags.25?UserStories to flags.25?PeerStories in userFull
-- Removed video, round, voice parameters in messageMediaDocument
-- Added unconfirmed parameter in authorization
-- Added flags, date parameters in updateReadMessagesContents
-- Added stories_hidden, stories_hidden_min, stories_unavailable, stories_max_id parameters in channel
-- Added stories_pinned_available, stories parameters in channelFull
-- Added terms_url parameter, removed recurring_terms_url parameter in invoice
-- Added from_request parameter in messageActionBotAllowed
-- Added post_stories, edit_stories, delete_stories parameters in chatAdminRights
-- Added flags, blocked_my_stories_from parameters, changed type of blocked from Bool to flags.0?true in updatePeerBlocked
-- Added show_in_attach_menu, show_in_side_menu, side_menu_disclaimer_needed parameters, changed type of peer_types from Vector<AttachMenuPeerType> to flags.3?Vector<AttachMenuPeerType> in attachMenuBot
-- Added has_settings parameter in messages.botApp
-- Added has_viewers, forwards_count, reactions, reactions_count parameters in storyViews
-- Added out, media_areas, sent_reaction parameters in storyItem
-- Added peer parameter, removed user_id parameter in updateStory
-- Added peer parameter, removed user_id parameter in updateReadStories
-- Added flags, stealth_mode parameters in stories.allStoriesNotModified
-- Added peer_stories, chats, stealth_mode parameters, removed user_stories parameter in stories.allStories
-- Added chats parameter in stories.stories
-- Added flags, blocked, blocked_my_stories_from, reaction parameters in storyView
-- Added flags, reactions_count, next_offset parameters in stories.storyViewsList
-- Added peer parameter, removed user_id parameter in inputMediaStory
-- Added peer parameter, removed user_id parameter in messageMediaStory
-- Added peer parameter, removed user_id parameter in webPageAttributeStory
-
-Deleted Constructors
-
-- Removed userStories
-- Removed stories.userStories
-
-PUSH notification changes
-New PUSH notifications
-
-- Added CHANNEL_MESSAGE_STORY -
{1} shared a story
-- Added CHAT_MESSAGE_STORY -
{1} shared a story to the group
-- Added MESSAGE_STORY -
{1} shared a story with you
-- Added MESSAGE_STORY_MENTION -
{1} mentioned you in a story
-- Added STORY_HIDDEN_AUTHOR -
A new story was posted (comment: emitted when previews are hidden for this peer)
-- Added STORY_NOTEXT -
{1} posted a story
-
-Schema
-dialog#d58a08c6 flags:# pinned:flags.2?true unread_mark:flags.3?true peer:Peer top_message:int read_inbox_max_id:int read_outbox_max_id:int unread_count:int unread_mentions_count:int unread_reactions_count:int notify_settings:PeerNotifySettings pts:flags.0?int draft:flags.1?DraftMessage folder_id:flags.4?int ttl_period:flags.5?int = Dialog;
-userFull#b9b12c6c flags:# blocked:flags.0?true phone_calls_available:flags.4?true phone_calls_private:flags.5?true can_pin_message:flags.7?true has_scheduled:flags.12?true video_calls_available:flags.13?true voice_messages_forbidden:flags.20?true translations_disabled:flags.23?true stories_pinned_available:flags.26?true blocked_my_stories_from:flags.27?true id:long about:flags.1?string settings:PeerSettings personal_photo:flags.21?Photo profile_photo:flags.2?Photo fallback_photo:flags.22?Photo notify_settings:PeerNotifySettings bot_info:flags.3?BotInfo pinned_msg_id:flags.6?int common_chats_count:int folder_id:flags.11?int ttl_period:flags.14?int theme_emoticon:flags.15?string private_forward_name:flags.16?string bot_group_admin_rights:flags.17?ChatAdminRights bot_broadcast_admin_rights:flags.18?ChatAdminRights premium_gifts:flags.19?Vector<PremiumGiftOption> wallpaper:flags.24?WallPaper stories:flags.25?PeerStories = UserFull;
-updateNewAuthorization#8951abef flags:# unconfirmed:flags.0?true hash:long date:flags.0?int device:flags.0?string location:flags.0?string = Update;
-messageMediaDocument#4cf4d72d flags:# nopremium:flags.3?true spoiler:flags.4?true document:flags.0?Document alt_document:flags.5?Document ttl_seconds:flags.2?int = MessageMedia;
-authorization#ad01d61d flags:# current:flags.0?true official_app:flags.1?true password_pending:flags.2?true encrypted_requests_disabled:flags.3?true call_requests_disabled:flags.4?true unconfirmed:flags.5?true hash:long device_model:string platform:string system_version:string api_id:int app_name:string app_version:string date_created:int date_active:int ip:string country:string region:string = Authorization;
-updateReadMessagesContents#f8227181 flags:# messages:Vector<int> pts:int pts_count:int date:flags.0?int = Update;
-channel#94f592db flags:# creator:flags.0?true left:flags.2?true broadcast:flags.5?true verified:flags.7?true megagroup:flags.8?true restricted:flags.9?true signatures:flags.11?true min:flags.12?true scam:flags.19?true has_link:flags.20?true has_geo:flags.21?true slowmode_enabled:flags.22?true call_active:flags.23?true call_not_empty:flags.24?true fake:flags.25?true gigagroup:flags.26?true noforwards:flags.27?true join_to_send:flags.28?true join_request:flags.29?true forum:flags.30?true flags2:# stories_hidden:flags2.1?true stories_hidden_min:flags2.2?true stories_unavailable:flags2.3?true id:long access_hash:flags.13?long title:string username:flags.6?string photo:ChatPhoto date:int restriction_reason:flags.9?Vector<RestrictionReason> admin_rights:flags.14?ChatAdminRights banned_rights:flags.15?ChatBannedRights default_banned_rights:flags.18?ChatBannedRights participants_count:flags.17?int usernames:flags2.0?Vector<Username> stories_max_id:flags2.4?int = Chat;
-channelFull#723027bd flags:# can_view_participants:flags.3?true can_set_username:flags.6?true can_set_stickers:flags.7?true hidden_prehistory:flags.10?true can_set_location:flags.16?true has_scheduled:flags.19?true can_view_stats:flags.20?true blocked:flags.22?true flags2:# can_delete_channel:flags2.0?true antispam:flags2.1?true participants_hidden:flags2.2?true translations_disabled:flags2.3?true stories_pinned_available:flags2.5?true id:long about:string participants_count:flags.0?int admins_count:flags.1?int kicked_count:flags.2?int banned_count:flags.2?int online_count:flags.13?int read_inbox_max_id:int read_outbox_max_id:int unread_count:int chat_photo:Photo notify_settings:PeerNotifySettings exported_invite:flags.23?ExportedChatInvite bot_info:Vector<BotInfo> migrated_from_chat_id:flags.4?long migrated_from_max_id:flags.4?int pinned_msg_id:flags.5?int stickerset:flags.8?StickerSet available_min_id:flags.9?int folder_id:flags.11?int linked_chat_id:flags.14?long location:flags.15?ChannelLocation slowmode_seconds:flags.17?int slowmode_next_send_date:flags.18?int stats_dc:flags.12?int pts:int call:flags.21?InputGroupCall ttl_period:flags.24?int pending_suggestions:flags.25?Vector<string> groupcall_default_join_as:flags.26?Peer theme_emoticon:flags.27?string requests_pending:flags.28?int recent_requesters:flags.28?Vector<long> default_send_as:flags.29?Peer available_reactions:flags.30?ChatReactions stories:flags2.4?PeerStories = ChatFull;
-invoice#5db95a15 flags:# test:flags.0?true name_requested:flags.1?true phone_requested:flags.2?true email_requested:flags.3?true shipping_address_requested:flags.4?true flexible:flags.5?true phone_to_provider:flags.6?true email_to_provider:flags.7?true recurring:flags.9?true currency:string prices:Vector<LabeledPrice> max_tip_amount:flags.8?long suggested_tip_amounts:flags.8?Vector<long> terms_url:flags.10?string = Invoice;
-messageActionBotAllowed#c516d679 flags:# attach_menu:flags.1?true from_request:flags.3?true domain:flags.0?string app:flags.2?BotApp = MessageAction;
-chatAdminRights#5fb224d5 flags:# change_info:flags.0?true post_messages:flags.1?true edit_messages:flags.2?true delete_messages:flags.3?true ban_users:flags.4?true invite_users:flags.5?true pin_messages:flags.7?true add_admins:flags.9?true anonymous:flags.10?true manage_call:flags.11?true other:flags.12?true manage_topics:flags.13?true post_stories:flags.14?true edit_stories:flags.15?true delete_stories:flags.16?true = ChatAdminRights;
-updatePeerBlocked#ebe07752 flags:# blocked:flags.0?true blocked_my_stories_from:flags.1?true peer_id:Peer = Update;
-attachMenuBot#d90d8dfe flags:# inactive:flags.0?true has_settings:flags.1?true request_write_access:flags.2?true show_in_attach_menu:flags.3?true show_in_side_menu:flags.4?true side_menu_disclaimer_needed:flags.5?true bot_id:long short_name:string peer_types:flags.3?Vector<AttachMenuPeerType> icons:Vector<AttachMenuBotIcon> = AttachMenuBot;
-messages.botApp#eb50adf5 flags:# inactive:flags.0?true request_write_access:flags.1?true has_settings:flags.2?true app:BotApp = messages.BotApp;
-storyViews#8d595cd6 flags:# has_viewers:flags.1?true views_count:int forwards_count:flags.2?int reactions:flags.3?Vector<ReactionCount> reactions_count:flags.4?int recent_viewers:flags.0?Vector<long> = StoryViews;
-storyItem#44c457ce flags:# pinned:flags.5?true public:flags.7?true close_friends:flags.8?true min:flags.9?true noforwards:flags.10?true edited:flags.11?true contacts:flags.12?true selected_contacts:flags.13?true out:flags.16?true id:int date:int expire_date:int caption:flags.0?string entities:flags.1?Vector<MessageEntity> media:MessageMedia media_areas:flags.14?Vector<MediaArea> privacy:flags.2?Vector<PrivacyRule> views:flags.3?StoryViews sent_reaction:flags.15?Reaction = StoryItem;
-updateStory#75b3b798 peer:Peer story:StoryItem = Update;
-updateReadStories#f74e932b peer:Peer max_id:int = Update;
-stories.allStoriesNotModified#1158fe3e flags:# state:string stealth_mode:StoriesStealthMode = stories.AllStories;
-stories.allStories#6efc5e81 flags:# has_more:flags.0?true count:int state:string peer_stories:Vector<PeerStories> chats:Vector<Chat> users:Vector<User> stealth_mode:StoriesStealthMode = stories.AllStories;
-stories.stories#5dd8c3c8 count:int stories:Vector<StoryItem> chats:Vector<Chat> users:Vector<User> = stories.Stories;
-storyView#b0bdeac5 flags:# blocked:flags.0?true blocked_my_stories_from:flags.1?true user_id:long date:int reaction:flags.2?Reaction = StoryView;
-stories.storyViewsList#46e9b9ec flags:# count:int reactions_count:int views:Vector<StoryView> users:Vector<User> next_offset:flags.0?string = stories.StoryViewsList;
-inputMediaStory#89fdd778 peer:InputPeer id:int = InputMedia;
-messageMediaStory#68cb6283 flags:# via_mention:flags.1?true peer:Peer id:int story:flags.0?StoryItem = MessageMedia;
-webPageAttributeStory#2e94c3e7 flags:# peer:Peer id:int story:flags.0?StoryItem = WebPageAttribute;
-storiesStealthMode#712e27fd flags:# active_until_date:flags.0?int cooldown_until_date:flags.1?int = StoriesStealthMode;
-updateStoriesStealthMode#2c084dc1 stealth_mode:StoriesStealthMode = Update;
-mediaAreaCoordinates#03d1ea4e x:double y:double w:double h:double rotation:double = MediaAreaCoordinates;
-mediaAreaVenue#be82db9c coordinates:MediaAreaCoordinates geo:GeoPoint title:string address:string provider:string venue_id:string venue_type:string = MediaArea;
-inputMediaAreaVenue#b282217f coordinates:MediaAreaCoordinates query_id:long result_id:string = MediaArea;
-mediaAreaGeoPoint#df8b3b22 coordinates:MediaAreaCoordinates geo:GeoPoint = MediaArea;
-updateSentStoryReaction#7d627683 peer:Peer story_id:int reaction:Reaction = Update;
-mediaAreaSuggestedReaction#14455871 flags:# dark:flags.0?true flipped:flags.1?true coordinates:MediaAreaCoordinates reaction:Reaction = MediaArea;
-peerStories#9a35e999 flags:# peer:Peer max_read_id:flags.0?int stories:Vector<StoryItem> = PeerStories;
-stories.peerStories#cae68768 stories:PeerStories chats:Vector<Chat> users:Vector<User> = stories.PeerStories;
-stories.boostsStatus#66ea1fef flags:# my_boost:flags.2?true level:int current_level_boosts:int boosts:int next_level_boosts:flags.0?int premium_audience:flags.1?StatsPercentValue = stories.BoostsStatus;
-stories.canApplyBoostOk#c3173587 = stories.CanApplyBoostResult;
-stories.canApplyBoostReplace#712c4655 current_boost:Peer chats:Vector<Chat> = stories.CanApplyBoostResult;
-booster#0e9e6380 user_id:long expires:int = Booster;
-stories.boostersList#f3dd3d1d flags:# count:int boosters:Vector<Booster> next_offset:flags.0?string users:Vector<User> = stories.BoostersList;
----functions---
-contacts.block#2e2e8734 flags:# my_stories_from:flags.0?true id:InputPeer = Bool;
-contacts.unblock#b550d328 flags:# my_stories_from:flags.0?true id:InputPeer = Bool;
-contacts.getBlocked#9a868f80 flags:# my_stories_from:flags.0?true offset:int limit:int = contacts.Blocked;
-account.changeAuthorizationSettings#40f48462 flags:# confirmed:flags.3?true hash:long encrypted_requests_disabled:flags.0?Bool call_requests_disabled:flags.1?Bool = Bool;
-messages.requestSimpleWebView#1a46500a flags:# from_switch_webview:flags.1?true from_side_menu:flags.2?true bot:InputUser url:flags.3?string start_param:flags.4?string theme_params:flags.0?DataJSON platform:string = SimpleWebViewResult;
-stories.canSendStory#c7dfdfdd peer:InputPeer = Bool;
-stories.sendStory#bcb73644 flags:# pinned:flags.2?true noforwards:flags.4?true peer:InputPeer media:InputMedia media_areas:flags.5?Vector<MediaArea> caption:flags.0?string entities:flags.1?Vector<MessageEntity> privacy_rules:Vector<InputPrivacyRule> random_id:long period:flags.3?int = Updates;
-stories.editStory#b583ba46 flags:# peer:InputPeer id:int media:flags.0?InputMedia media_areas:flags.3?Vector<MediaArea> caption:flags.1?string entities:flags.1?Vector<MessageEntity> privacy_rules:flags.2?Vector<InputPrivacyRule> = Updates;
-stories.deleteStories#ae59db5f peer:InputPeer id:Vector<int> = Vector<int>;
-stories.togglePinned#9a75a1ef peer:InputPeer id:Vector<int> pinned:Bool = Vector<int>;
-stories.getPinnedStories#5821a5dc peer:InputPeer offset_id:int limit:int = stories.Stories;
-stories.getStoriesArchive#b4352016 peer:InputPeer offset_id:int limit:int = stories.Stories;
-stories.getStoriesByID#5774ca74 peer:InputPeer id:Vector<int> = stories.Stories;
-stories.readStories#a556dac8 peer:InputPeer max_id:int = Vector<int>;
-stories.incrementStoryViews#b2028afb peer:InputPeer id:Vector<int> = Bool;
-stories.getStoryViewsList#7ed23c57 flags:# just_contacts:flags.0?true reactions_first:flags.2?true peer:InputPeer q:flags.1?string id:int offset:string limit:int = stories.StoryViewsList;
-stories.getStoriesViews#28e16cc8 peer:InputPeer id:Vector<int> = stories.StoryViews;
-stories.exportStoryLink#7b8def20 peer:InputPeer id:int = ExportedStoryLink;
-stories.report#1923fa8c peer:InputPeer id:Vector<int> reason:ReportReason message:string = Bool;
-stories.activateStealthMode#57bbd166 flags:# past:flags.0?true future:flags.1?true = Updates;
-contacts.setBlocked#94c65c76 flags:# my_stories_from:flags.0?true id:Vector<InputPeer> limit:int = Bool;
-stories.sendReaction#7fd736b2 flags:# add_to_recent:flags.0?true peer:InputPeer story_id:int reaction:Reaction = Updates;
-bots.canSendMessage#1359f4e6 bot:InputUser = Bool;
-bots.allowSendMessage#f132e3ef bot:InputUser = Updates;
-bots.invokeWebViewCustomMethod#087fc5e7 bot:InputUser custom_method:string params:DataJSON = DataJSON;
-stories.getPeerStories#2c4ada50 peer:InputPeer = stories.PeerStories;
-stories.getAllReadPeerStories#9b5ae7f9 = Updates;
-stories.getPeerMaxIDs#535983c3 id:Vector<InputPeer> = Vector<int>;
-stories.getChatsToSend#a56a8b60 = messages.Chats;
-stories.togglePeerStoriesHidden#bd0415c4 peer:InputPeer hidden:Bool = Bool;
-stories.getBoostsStatus#4c449472 peer:InputPeer = stories.BoostsStatus;
-stories.getBoostersList#337ef980 peer:InputPeer offset:string limit:int = stories.BoostersList;
-stories.canApplyBoost#db05c1bd peer:InputPeer = stories.CanApplyBoostResult;
-stories.applyBoost#f29d7c2b peer:InputPeer = Bool;
-Layer 160
-Schema changes
-New Methods
-
-- Added contacts.editCloseFriends - Edit the close friends list, see here » for more info.
-- Added contacts.toggleStoriesHidden
-- Added stories.canSendStory - Check whether we can post stories as the specified peer.
-- Added stories.sendStory - Uploads a Telegram Story.
-- Added stories.editStory - Edit an uploaded story
-- Added stories.deleteStories - Deletes some posted stories.
-- Added stories.togglePinned - Pin or unpin one or more stories
-- Added stories.getAllStories - Fetch the List of active (or active and hidden) stories, see here » for more info on watching stories.
-- Added stories.getUserStories
-- Added stories.getPinnedStories - Fetch the stories pinned on a peer's profile.
-- Added stories.getStoriesArchive - Fetch the story archive » of a peer we control.
-- Added stories.getStoriesByID - Obtain full info about a set of stories by their IDs.
-- Added stories.toggleAllStoriesHidden - Hide the active stories of a specific peer, preventing them from being displayed on the action bar on the homescreen.
-- Added stories.getAllReadUserStories
-- Added stories.readStories - Mark all stories up to a certain ID as read, for a given peer; will emit an updateReadStories update to all logged-in sessions.
-- Added stories.incrementStoryViews - Increment the view counter of one or more stories.
-- Added stories.getStoryViewsList - Obtain the list of users that have viewed a specific story we posted
-- Added stories.getStoriesViews - Obtain info about the view count, forward count, reactions and recent viewers of one or more stories.
-- Added stories.exportStoryLink - Generate a story deep link for a specific story
-- Added stories.report - Report a story.
-- Added users.getStoriesMaxIDs
-
-Changed Methods
-
-- Added reply_to parameter, removed reply_to_msg_id, top_msg_id parameters in messages.sendMessage
-- Added reply_to parameter, removed reply_to_msg_id, top_msg_id parameters in messages.sendMedia
-- Added reply_to parameter, removed reply_to_msg_id, top_msg_id parameters in messages.sendInlineBotResult
-- Added reply_to parameter, removed reply_to_msg_id parameter in messages.sendScreenshotNotification
-- Added reply_to parameter, removed reply_to_msg_id, top_msg_id parameters in messages.sendMultiMedia
-- Added compare_stories parameter in account.getNotifyExceptions
-- Added reply_to parameter, removed reply_to_msg_id, top_msg_id parameters in messages.requestWebView
-- Added reply_to parameter, removed reply_to_msg_id, top_msg_id parameters in messages.prolongWebView
-
-New Constructors
-
-- Added storyViews - Aggregated view and reaction information of a story.
-- Added storyItemDeleted - Represents a previously active story, that was deleted
-- Added storyItemSkipped - Represents an active story, whose full information was omitted for space and performance reasons; use stories.getStoriesByID to fetch full info about the skipped story when and if needed.
-- Added storyItem - Represents a story.
-- Added userStories
-- Added updateStory - A new story was posted.
-- Added updateReadStories - Stories of a specific peer were marked as read.
-- Added stories.allStoriesNotModified - The list of active (or active and hidden) stories has not changed.
-- Added stories.allStories - Full list of active (or active and hidden) stories.
-- Added stories.stories - List of stories
-- Added stories.userStories
-- Added inputPrivacyValueAllowCloseFriends - Allow only close friends »
-- Added privacyValueAllowCloseFriends - Allow only close friends »
-- Added storyView - Story view date and reaction information
-- Added stories.storyViewsList - Reaction and view counters for a story
-- Added stories.storyViews - Reaction and view counters for a list of stories
-- Added inputReplyToMessage - Reply to a message.
-- Added inputReplyToStory - Reply to a story.
-- Added messageReplyStoryHeader - Represents a reply to a story
-- Added updateStoryID - A story was successfully uploaded.
-- Added exportedStoryLink - Represents a story deep link.
-- Added inputMediaStory - Forwarded story
-- Added messageMediaStory - Represents a forwarded story or a story mention.
-- Added webPageAttributeStory - Webpage preview of a Telegram story
-
-Changed Constructors
-
-- Added view_forum_as_messages parameter in dialog
-- Added stories_muted, stories_hide_sender, stories_sound parameters in inputPeerNotifySettings
-- Added stories_muted, stories_hide_sender, stories_ios_sound, stories_android_sound, stories_other_sound parameters in peerNotifySettings
-- Added stories_pinned_available, stories parameters in userFull
-- Added video, round, voice, alt_document parameters in messageMediaDocument
-- Added nosound, preload_prefix_size parameters, changed type of duration from int to double in documentAttributeVideo
-- Added close_friend, stories_hidden, stories_unavailable, stories_max_id parameters in user
-- Added stories_preload parameter in autoDownloadSettings
-- Added keep_archived_unmuted, keep_archived_folders parameters, changed type of archive_and_mute_new_noncontact_peers from flags.0?Bool to flags.0?true in globalPrivacySettings
-
-Deleted Constructors
-
-- Removed messageEntityBlockquote
-
-Schema
-dialog#d58a08c6 flags:# pinned:flags.2?true unread_mark:flags.3?true view_forum_as_messages:flags.6?true peer:Peer top_message:int read_inbox_max_id:int read_outbox_max_id:int unread_count:int unread_mentions_count:int unread_reactions_count:int notify_settings:PeerNotifySettings pts:flags.0?int draft:flags.1?DraftMessage folder_id:flags.4?int ttl_period:flags.5?int = Dialog;
-inputPeerNotifySettings#cacb6ae2 flags:# show_previews:flags.0?Bool silent:flags.1?Bool mute_until:flags.2?int sound:flags.3?NotificationSound stories_muted:flags.6?Bool stories_hide_sender:flags.7?Bool stories_sound:flags.8?NotificationSound = InputPeerNotifySettings;
-peerNotifySettings#99622c0c flags:# show_previews:flags.0?Bool silent:flags.1?Bool mute_until:flags.2?int ios_sound:flags.3?NotificationSound android_sound:flags.4?NotificationSound other_sound:flags.5?NotificationSound stories_muted:flags.6?Bool stories_hide_sender:flags.7?Bool stories_ios_sound:flags.8?NotificationSound stories_android_sound:flags.9?NotificationSound stories_other_sound:flags.10?NotificationSound = PeerNotifySettings;
-userFull#4fe1cc86 flags:# blocked:flags.0?true phone_calls_available:flags.4?true phone_calls_private:flags.5?true can_pin_message:flags.7?true has_scheduled:flags.12?true video_calls_available:flags.13?true voice_messages_forbidden:flags.20?true translations_disabled:flags.23?true stories_pinned_available:flags.26?true id:long about:flags.1?string settings:PeerSettings personal_photo:flags.21?Photo profile_photo:flags.2?Photo fallback_photo:flags.22?Photo notify_settings:PeerNotifySettings bot_info:flags.3?BotInfo pinned_msg_id:flags.6?int common_chats_count:int folder_id:flags.11?int ttl_period:flags.14?int theme_emoticon:flags.15?string private_forward_name:flags.16?string bot_group_admin_rights:flags.17?ChatAdminRights bot_broadcast_admin_rights:flags.18?ChatAdminRights premium_gifts:flags.19?Vector<PremiumGiftOption> wallpaper:flags.24?WallPaper stories:flags.25?UserStories = UserFull;
-messageMediaDocument#4cf4d72d flags:# nopremium:flags.3?true spoiler:flags.4?true video:flags.6?true round:flags.7?true voice:flags.8?true document:flags.0?Document alt_document:flags.5?Document ttl_seconds:flags.2?int = MessageMedia;
-documentAttributeVideo#d38ff1c2 flags:# round_message:flags.0?true supports_streaming:flags.1?true nosound:flags.3?true duration:double w:int h:int preload_prefix_size:flags.2?int = DocumentAttribute;
-user#abb5f120 flags:# self:flags.10?true contact:flags.11?true mutual_contact:flags.12?true deleted:flags.13?true bot:flags.14?true bot_chat_history:flags.15?true bot_nochats:flags.16?true verified:flags.17?true restricted:flags.18?true min:flags.20?true bot_inline_geo:flags.21?true support:flags.23?true scam:flags.24?true apply_min_photo:flags.25?true fake:flags.26?true bot_attach_menu:flags.27?true premium:flags.28?true attach_menu_enabled:flags.29?true flags2:# bot_can_edit:flags2.1?true close_friend:flags2.2?true stories_hidden:flags2.3?true stories_unavailable:flags2.4?true id:long access_hash:flags.0?long first_name:flags.1?string last_name:flags.2?string username:flags.3?string phone:flags.4?string photo:flags.5?UserProfilePhoto status:flags.6?UserStatus bot_info_version:flags.14?int restriction_reason:flags.18?Vector<RestrictionReason> bot_inline_placeholder:flags.19?string lang_code:flags.22?string emoji_status:flags.30?EmojiStatus usernames:flags2.0?Vector<Username> stories_max_id:flags2.5?int = User;
-autoDownloadSettings#baa57628 flags:# disabled:flags.0?true video_preload_large:flags.1?true audio_preload_next:flags.2?true phonecalls_less_data:flags.3?true stories_preload:flags.4?true photo_size_max:int video_size_max:long file_size_max:long video_upload_maxbitrate:int small_queue_active_operations_max:int large_queue_active_operations_max:int = AutoDownloadSettings;
-globalPrivacySettings#734c4ccb flags:# archive_and_mute_new_noncontact_peers:flags.0?true keep_archived_unmuted:flags.1?true keep_archived_folders:flags.2?true = GlobalPrivacySettings;
-storyViews#d36760cf flags:# views_count:int recent_viewers:flags.0?Vector<long> = StoryViews;
-storyItemDeleted#51e6ee4f id:int = StoryItem;
-storyItemSkipped#ffadc913 flags:# close_friends:flags.8?true id:int date:int expire_date:int = StoryItem;
-storyItem#562aa637 flags:# pinned:flags.5?true public:flags.7?true close_friends:flags.8?true min:flags.9?true noforwards:flags.10?true edited:flags.11?true contacts:flags.12?true selected_contacts:flags.13?true id:int date:int expire_date:int caption:flags.0?string entities:flags.1?Vector<MessageEntity> media:MessageMedia privacy:flags.2?Vector<PrivacyRule> views:flags.3?StoryViews = StoryItem;
-userStories#8611a200 flags:# user_id:long max_read_id:flags.0?int stories:Vector<StoryItem> = UserStories;
-updateStory#205a4133 user_id:long story:StoryItem = Update;
-updateReadStories#feb5345a user_id:long max_id:int = Update;
-stories.allStoriesNotModified#47e0a07e state:string = stories.AllStories;
-stories.allStories#839e0428 flags:# has_more:flags.0?true count:int state:string user_stories:Vector<UserStories> users:Vector<User> = stories.AllStories;
-stories.stories#4fe57df1 count:int stories:Vector<StoryItem> users:Vector<User> = stories.Stories;
-stories.userStories#37a6ff5f stories:UserStories users:Vector<User> = stories.UserStories;
-inputPrivacyValueAllowCloseFriends#2f453e49 = InputPrivacyRule;
-privacyValueAllowCloseFriends#f7e8d89b = PrivacyRule;
-storyView#a71aacc2 user_id:long date:int = StoryView;
-stories.storyViewsList#fb3f77ac count:int views:Vector<StoryView> users:Vector<User> = stories.StoryViewsList;
-stories.storyViews#de9eed1d views:Vector<StoryViews> users:Vector<User> = stories.StoryViews;
-inputReplyToMessage#9c5386e4 flags:# reply_to_msg_id:int top_msg_id:flags.0?int = InputReplyTo;
-inputReplyToStory#15b0f283 user_id:InputUser story_id:int = InputReplyTo;
-messageReplyStoryHeader#9c98bfc1 user_id:long story_id:int = MessageReplyHeader;
-updateStoryID#1bf335b9 id:int random_id:long = Update;
-exportedStoryLink#3fc9053b link:string = ExportedStoryLink;
-inputMediaStory#9a86b58f user_id:InputUser id:int = InputMedia;
-messageMediaStory#cbb20d88 flags:# via_mention:flags.1?true user_id:long id:int story:flags.0?StoryItem = MessageMedia;
-webPageAttributeStory#939a4671 flags:# user_id:long id:int story:flags.0?StoryItem = WebPageAttribute;
----functions---
-messages.sendMessage#280d096f flags:# no_webpage:flags.1?true silent:flags.5?true background:flags.6?true clear_draft:flags.7?true noforwards:flags.14?true update_stickersets_order:flags.15?true peer:InputPeer reply_to:flags.0?InputReplyTo message:string random_id:long reply_markup:flags.2?ReplyMarkup entities:flags.3?Vector<MessageEntity> schedule_date:flags.10?int send_as:flags.13?InputPeer = Updates;
-messages.sendMedia#72ccc23d flags:# silent:flags.5?true background:flags.6?true clear_draft:flags.7?true noforwards:flags.14?true update_stickersets_order:flags.15?true peer:InputPeer reply_to:flags.0?InputReplyTo media:InputMedia message:string random_id:long reply_markup:flags.2?ReplyMarkup entities:flags.3?Vector<MessageEntity> schedule_date:flags.10?int send_as:flags.13?InputPeer = Updates;
-messages.sendInlineBotResult#f7bc68ba flags:# silent:flags.5?true background:flags.6?true clear_draft:flags.7?true hide_via:flags.11?true peer:InputPeer reply_to:flags.0?InputReplyTo random_id:long query_id:long id:string schedule_date:flags.10?int send_as:flags.13?InputPeer = Updates;
-messages.sendScreenshotNotification#a1405817 peer:InputPeer reply_to:InputReplyTo random_id:long = Updates;
-messages.sendMultiMedia#456e8987 flags:# silent:flags.5?true background:flags.6?true clear_draft:flags.7?true noforwards:flags.14?true update_stickersets_order:flags.15?true peer:InputPeer reply_to:flags.0?InputReplyTo multi_media:Vector<InputSingleMedia> schedule_date:flags.10?int send_as:flags.13?InputPeer = Updates;
-account.getNotifyExceptions#53577479 flags:# compare_sound:flags.1?true compare_stories:flags.2?true peer:flags.0?InputNotifyPeer = Updates;
-messages.requestWebView#269dc2c1 flags:# from_bot_menu:flags.4?true silent:flags.5?true peer:InputPeer bot:InputUser url:flags.1?string start_param:flags.3?string theme_params:flags.2?DataJSON platform:string reply_to:flags.0?InputReplyTo send_as:flags.13?InputPeer = WebViewResult;
-messages.prolongWebView#b0d81a83 flags:# silent:flags.5?true peer:InputPeer bot:InputUser query_id:long reply_to:flags.0?InputReplyTo send_as:flags.13?InputPeer = Bool;
-contacts.editCloseFriends#ba6705f0 id:Vector<long> = Bool;
-contacts.toggleStoriesHidden#753fb865 id:InputUser hidden:Bool = Bool;
-stories.canSendStory#b100d45d = Bool;
-stories.sendStory#424cd47a flags:# pinned:flags.2?true noforwards:flags.4?true media:InputMedia caption:flags.0?string entities:flags.1?Vector<MessageEntity> privacy_rules:Vector<InputPrivacyRule> random_id:long period:flags.3?int = Updates;
-stories.editStory#2aae7a41 flags:# id:int media:flags.0?InputMedia caption:flags.1?string entities:flags.1?Vector<MessageEntity> privacy_rules:flags.2?Vector<InputPrivacyRule> = Updates;
-stories.deleteStories#b5d501d7 id:Vector<int> = Vector<int>;
-stories.togglePinned#51602944 id:Vector<int> pinned:Bool = Vector<int>;
-stories.getAllStories#eeb0d625 flags:# next:flags.1?true hidden:flags.2?true state:flags.0?string = stories.AllStories;
-stories.getUserStories#96d528e0 user_id:InputUser = stories.UserStories;
-stories.getPinnedStories#0b471137 user_id:InputUser offset_id:int limit:int = stories.Stories;
-stories.getStoriesArchive#1f5bc5d2 offset_id:int limit:int = stories.Stories;
-stories.getStoriesByID#6a15cf46 user_id:InputUser id:Vector<int> = stories.Stories;
-stories.toggleAllStoriesHidden#7c2557c4 hidden:Bool = Bool;
-stories.getAllReadUserStories#729c562c = Updates;
-stories.readStories#edc5105b user_id:InputUser max_id:int = Vector<int>;
-stories.incrementStoryViews#22126127 user_id:InputUser id:Vector<int> = Bool;
-stories.getStoryViewsList#4b3b5e97 id:int offset_date:int offset_id:long limit:int = stories.StoryViewsList;
-stories.getStoriesViews#9a75d6a6 id:Vector<int> = stories.StoryViews;
-stories.exportStoryLink#16e443ce user_id:InputUser id:int = ExportedStoryLink;
-stories.report#c95be06a user_id:InputUser id:Vector<int> reason:ReportReason message:string = Bool;
-users.getStoriesMaxIDs#ca1cb9ab id:Vector<InputUser> = Vector<int>;
-Layer 159
-Introducing privacy settings for user bios, improved login code invalidation, improved chat invites, improved update handling, sponsored websites and click reporting for sponsored messages.
-Also, anonymous channels can now vote in polls: when invoking messages.sendVote, the vote will be sent from the peer specified using messages.saveDefaultSendAs.
-Schema changes
-New Methods
-
-- Added account.invalidateSignInCodes - Invalidate the specified login codes, see here » for more info.
-- Added channels.clickSponsoredMessage - Informs the server that the user has either:
-
-Changed Methods
-
-- Added pts_limit, qts_limit parameters in updates.getDifference
-
-New Constructors
-
-- Added messagePeerVote - How a peer voted in a poll
-- Added messagePeerVoteInputOption - How a peer voted in a poll (reduced constructor, returned if an
option
was provided to messages.getPollVotes)
-- Added messagePeerVoteMultiple - How a peer voted in a multiple-choice poll
-- Added inputPrivacyKeyAbout - Whether people can see your bio
-- Added privacyKeyAbout - Whether people can see your bio
-- Added sponsoredWebPage - Represents a sponsored website.
-
-Changed Constructors
-
-- Added verified, scam, fake parameters in chatInvite
-- Changed type of recent_voters from flags.3?Vector<long> to flags.3?Vector<Peer> in pollResults
-- Added small_queue_active_operations_max, large_queue_active_operations_max parameters in autoDownloadSettings
-- Added peer parameter, removed user_id parameter in updateMessagePollVote
-- Added chats parameter, changed type of votes from Vector<MessageUserVote> to Vector<MessagePeerVote> in messages.votesList
-- Added webpage parameter in sponsoredMessage
-
-Deleted Constructors
-
-- Removed messageUserVote
-- Removed messageUserVoteInputOption
-- Removed messageUserVoteMultiple
-
-Schema
-chatInvite#300c44c1 flags:# channel:flags.0?true broadcast:flags.1?true public:flags.2?true megagroup:flags.3?true request_needed:flags.6?true verified:flags.7?true scam:flags.8?true fake:flags.9?true title:string about:flags.5?string photo:Photo participants_count:int participants:flags.4?Vector<User> = ChatInvite;
-pollResults#7adf2420 flags:# min:flags.0?true results:flags.1?Vector<PollAnswerVoters> total_voters:flags.2?int recent_voters:flags.3?Vector<Peer> solution:flags.4?string solution_entities:flags.4?Vector<MessageEntity> = PollResults;
-autoDownloadSettings#baa57628 flags:# disabled:flags.0?true video_preload_large:flags.1?true audio_preload_next:flags.2?true phonecalls_less_data:flags.3?true photo_size_max:int video_size_max:long file_size_max:long video_upload_maxbitrate:int small_queue_active_operations_max:int large_queue_active_operations_max:int = AutoDownloadSettings;
-updateMessagePollVote#24f40e77 poll_id:long peer:Peer options:Vector<bytes> qts:int = Update;
-messages.votesList#4899484e flags:# count:int votes:Vector<MessagePeerVote> chats:Vector<Chat> users:Vector<User> next_offset:flags.0?string = messages.VotesList;
-sponsoredMessage#daafff6b flags:# recommended:flags.5?true show_peer_photo:flags.6?true random_id:bytes from_id:flags.3?Peer chat_invite:flags.4?ChatInvite chat_invite_hash:flags.4?string channel_post:flags.2?int start_param:flags.0?string webpage:flags.9?SponsoredWebPage message:string entities:flags.1?Vector<MessageEntity> sponsor_info:flags.7?string additional_info:flags.8?string = SponsoredMessage;
-messagePeerVote#b6cc2d5c peer:Peer option:bytes date:int = MessagePeerVote;
-messagePeerVoteInputOption#74cda504 peer:Peer date:int = MessagePeerVote;
-messagePeerVoteMultiple#4628f6e6 peer:Peer options:Vector<bytes> date:int = MessagePeerVote;
-inputPrivacyKeyAbout#3823cc40 = InputPrivacyKey;
-privacyKeyAbout#a486b761 = PrivacyKey;
-sponsoredWebPage#3db8ec63 flags:# url:string site_name:string photo:flags.0?Photo = SponsoredWebPage;
----functions---
-updates.getDifference#19c2f763 flags:# pts:int pts_limit:flags.1?int pts_total_limit:flags.0?int date:int qts:int qts_limit:flags.2?int = updates.Difference;
-account.invalidateSignInCodes#ca8ae8ba codes:Vector<string> = Bool;
-channels.clickSponsoredMessage#18afbc93 channel:InputChannel random_id:bytes = Bool;
Layer 158
To view all the changes since the last update, start reading the changelog @ Layer 146.
Most importantly, layer 152 added support for Firebase SMS authentication, which in some conditions may be required by the server in order to send SMS codes.
@@ -1032,8 +170,8 @@ Bots may also now specify a custom peer filter when using Schema
messagePeerReaction#8c79b63c flags:# big:flags.0?true unread:flags.1?true peer_id:Peer date:int reaction:Reaction = MessagePeerReaction;
Layer 154
-Added support for named Mini Apps, which can be opened from a Direct Mini App link.
-Web apps can now be opened by clicking on a switch_webview
inline result, similar to switch_pm
inline results.
+
Added support for named bot web apps, which can be opened from a named bot web app deep link.
+Web apps can now be opened by clicking on a switch_webview
inline result, similar to switch_pm
inline results.
Bots can now edit and localize their own about text and description.
The current future auth token is now directly returned in the config constructor, which was also cleaned up to remove redundant information already contained in the appConfig configuration.
messages.getMessageReadParticipants now returns a timestamp for each user, indicating when that user has read the specified message.
@@ -1042,8 +180,8 @@ The current future auth token is now
Schema changes
New Methods
-- Added messages.getBotApp - Obtain information about a direct link Mini App
-- Added messages.requestAppWebView - Open a bot mini app from a direct Mini App deep link, sending over user information after user confirmation.
+- Added messages.getBotApp - Obtain information about a named bot web app
+- Added messages.requestAppWebView - Open a bot web app from a named bot web app deep link, sending over user information after user confirmation.
- Added bots.setBotInfo - Set localized name, about text and description of a bot (or of the current account, if called by a bot).
- Added bots.getBotInfo - Get localized name, about text and description of a bot (or of the current account, if called by a bot).
@@ -1055,13 +193,13 @@ The current future auth token is now
New Constructors
-- Added inputBotAppID - Used to fetch information about a direct link Mini App by its ID
-- Added inputBotAppShortName - Used to fetch information about a direct link Mini App by its short name
+- Added inputBotAppID - Used to fetch information about a named bot web app by its ID
+- Added inputBotAppShortName - Used to fetch information about a named bot web app by its short name
- Added botAppNotModified - Bot app info hasn't changed.
-- Added botApp - Contains information about a direct link Mini App.
-- Added messages.botApp - Contains information about a direct link Mini App
-- Added appWebViewResultUrl - Contains the link that must be used to open a direct link Mini App.
-- Added inlineBotWebView - Specifies an inline mode mini app button, shown on top of the inline query results list.
+- Added botApp - Contains information about a named bot web app.
+- Added messages.botApp - Contains information about a named bot web app
+- Added appWebViewResultUrl - Contains the link that must be used to open a named bot web app.
+- Added inlineBotWebView - Specifies a bot web app button, shown on top of the inline query results list.
- Added readParticipantDate - Contains info about when a certain participant has read a message
- Added updateGroupInvitePrivacyForbidden - 0-N updates of this type may be returned only when invoking messages.addChatUser, channels.inviteToChannel or messages.createChat: it indicates we couldn't add a user to a chat because of their privacy settings; if required, an invite link can be shared with the user, instead.
@@ -1140,7 +278,7 @@ Third-party apps may log in using any of the other code delivery methods (Telegr
Schema changes
New Methods
-- Added messages.sendBotRequestedPeer - Send one or more chosen peers, as requested by a keyboardButtonRequestPeer button.
+- Added messages.sendBotRequestedPeer - Send a chosen peer, as requested by a keyboardButtonRequestPeer button.
- Added account.getDefaultProfilePhotoEmojis - Get a set of suggested custom emoji stickers that can be used as profile picture
- Added account.getDefaultGroupPhotoEmojis - Get a set of suggested custom emoji stickers that can be used as group picture
- Added auth.requestFirebaseSms - Request an SMS code via Firebase.
@@ -1162,11 +300,11 @@ Third-party apps may log in using any of the other code delivery methods (Telegr
New Constructors
- Added auth.sentCodeSuccess - The user successfully authorized using future auth tokens
-- Added messageActionRequestedPeer - Contains info about one or more peers that the user shared with the bot after clicking on a keyboardButtonRequestPeer button.
+- Added messageActionRequestedPeer - Contains info about a peer that the user shared with the bot after clicking on a keyboardButtonRequestPeer button.
- Added requestPeerTypeUser - Choose a user.
- Added requestPeerTypeChat - Choose a chat or supergroup
- Added requestPeerTypeBroadcast - Choose a channel
-- Added keyboardButtonRequestPeer - Prompts the user to select and share one or more peers with the bot using messages.sendBotRequestedPeer
+- Added keyboardButtonRequestPeer - Prompts the user to select and share a peer with the bot using messages.sendBotRequestedPeer
- Added emojiListNotModified - The list of custom emojis hasn't changed.
- Added emojiList - Represents a list of custom emojis.
- Added auth.sentCodeTypeFirebaseSms - An authentication code should be delivered via SMS after Firebase attestation, as described in the auth documentation ».
@@ -1245,7 +383,7 @@ Third-party apps may log in using any of the other code delivery methods (Telegr
account.deleteAutoSaveExceptions#53bc0020 = Bool;
Layer 151
Introducing spoiler media, custom contact profile pictures, hidden supergroup participants and persistent bot keyboards.
-Attachment menu bot mini apps may now ask permission to write direct messages to the users that install them.
+Attachment menu bot web apps may now ask permission to write direct messages to the users that install them.
Schema changes
New Methods
@@ -1385,7 +523,7 @@ Third-party apps may log in using any of the other code delivery methods (Telegr
channels.reorderPinnedForumTopics#2950a18f flags:# force:flags.0?true channel:InputChannel order:Vector<int> = Updates;
Layer 148
Collectible usernames », groups with topics (aka forums »), sponsored message improvements.
-Added support for thread IDs in message deep links », which now double as forum topic deep links », and added a new manage_topics
parameter to group/channel bot deep links.
+Added support for thread IDs in message deep links », which now double as forum topic deep links », and added a new manage_topics
parameter to group/channel bot deep links.
Schema changes
New Methods
@@ -1575,7 +713,7 @@ Added support for thread IDs in message deep
stickers.createStickerSet#9021ab67 flags:# masks:flags.0?true animated:flags.1?true videos:flags.4?true emojis:flags.5?true text_color:flags.6?true user_id:InputUser title:string short_name:string thumb:flags.2?InputDocument stickers:Vector<InputStickerSetItem> software:flags.3?string = messages.StickerSet;
messages.getExtendedMedia#84f80814 peer:InputPeer id:Vector<int> = Updates;
Layer 145
-Custom emoji statuses, custom emoji & multiple message reactions, login via email, recent stickersets, Telegram Premium and bot mini app improvements.
+Custom emoji statuses, custom emoji & multiple message reactions, login via email, recent stickersets, Telegram Premium and bot web app improvements.
Added the following brand new documentation articles:
- Deep links
@@ -1807,7 +945,681 @@ Also introducing new Layer 143
Telegram Premium, voice message transcription, invoices, bot description photos/animations, immediate account deletion, recurring payments and attachment menu improvements.
Also, discussion group admins can now require users to join before commenting.
-The main and E2E schemes were also modified to eventually support uploading and downloading files bigger than 4GB: the current supported maximum filesize is dynamically specified, and can be fetched from the new upload_max_fileparts_default » and upload_max_fileparts_premium » app configuration fields.
+The main and E2E schemes were also modified to eventually support uploading and downloading files bigger than 4GB: the current supported maximum filesize is dynamically specified, and can be fetched from the new upload_max_fileparts_default » and upload_max_fileparts_premium » app configuration fields.
+Schema changes
+New Methods
+
+- Added channels.toggleJoinToSend - Set whether all users should join a discussion group in order to comment on a post »
+- Added channels.toggleJoinRequest - Set whether all users should request admin approval to join the group ».
+- Added payments.exportInvoice - Generate an invoice deep link
+- Added messages.transcribeAudio - Transcribe voice message
+- Added messages.rateTranscribedAudio - Rate transcribed voice message
+- Added payments.assignAppStoreTransaction - Informs server about a purchase made through the App Store: for official applications only.
+- Added payments.assignPlayMarketTransaction - Informs server about a purchase made through the Play Store: for official applications only.
+- Added payments.canPurchasePremium - Checks whether Telegram Premium purchase is possible. Must be called before in-store Premium purchase, official apps only.
+- Added help.getPremiumPromo - Get Telegram Premium promotion information
+
+Changed Methods
+
+- Changed type of offset from int to long in upload.getFile
+- Added flags, password parameters in account.deleteAccount
+- Changed type of size from int to long in messages.getDocumentByHash
+- Added invoice parameter, removed peer, msg_id parameters in payments.getPaymentForm
+- Added invoice parameter, removed peer, msg_id parameters in payments.validateRequestedInfo
+- Added invoice parameter, removed peer, msg_id parameters in payments.sendPaymentForm
+- Changed type of offset from int to long in upload.getCdnFile
+- Changed type of offset from int to long in upload.getCdnFileHashes
+- Changed type of offset from int to long in upload.getFileHashes
+- Changed type of file_max_size from flags.5?int to flags.5?long in account.initTakeoutSession
+- Added send_as parameter in messages.requestWebView
+- Added send_as parameter in messages.prolongWebView
+
+New Constructors
+
+- Added attachMenuPeerTypeSameBotPM - The bot attachment menu entry is available in the chat with the bot that offers it
+- Added attachMenuPeerTypeBotPM - The bot attachment menu entry is available in private chats with other bots (excluding the bot that offers the current attachment menu)
+- Added attachMenuPeerTypePM - The bot attachment menu entry is available in private chats with other users (not bots)
+- Added attachMenuPeerTypeChat - The bot attachment menu entry is available in groups and supergroups
+- Added attachMenuPeerTypeBroadcast - The bot attachment menu entry is available in channels
+- Added chatInvitePublicJoinRequests - Used in updates and in the channel log to indicate when a user is requesting to join or has joined a discussion group
+- Added inputInvoiceMessage - An invoice contained in a messageMediaInvoice message.
+- Added inputInvoiceSlug - An invoice slug taken from an invoice deep link or from the
premium_invoice_slug
app config parameter »
+- Added payments.exportedInvoice - Exported invoice deep link
+- Added updateTranscribedAudio - A pending voice message transcription » initiated with messages.transcribeAudio was updated.
+- Added messages.transcribedAudio - Transcribed text from a voice message »
+- Added dialogFilterDefault - Used only when reordering folders to indicate the default (all chats) folder.
+- Added help.premiumPromo - Telegram Premium promotion information
+
+Changed Constructors
+
+- Changed type of size from int to long in encryptedFile
+- Added nopremium parameter in messageMediaDocument
+- Changed type of size from int to long in document
+- Added premium, attach_menu_enabled parameters in user
+- Added flags, description_photo, description_document parameters, changed type of user_id from long to flags.0?long, description from string to flags.1?string, commands from Vector<BotCommand> to flags.2?Vector<BotCommand>, menu_button from BotMenuButton to flags.3?BotMenuButton in botInfo
+- Added join_to_send, join_request parameters in channel
+- Added flags, premium parameters in messages.featuredStickers
+- Added recurring, recurring_terms_url parameters in invoice
+- Added recurring_init, recurring_used parameters in messageActionPaymentSentMe
+- Added flags, recurring_init, recurring_used, invoice_slug parameters in messageActionPaymentSent
+- Added title, description, photo parameters in payments.paymentForm
+- Changed type of offset from int to long in fileHash
+- Changed type of size from int to long in secureFile
+- Changed type of video_size_max from int to long, file_size_max from int to long in autoDownloadSettings
+- Added premium parameter in availableReaction
+- Added has_settings, peer_types parameters in attachMenuBot
+
+PUSH notification changes
+New PUSH notifications
+
+- Added MESSAGE_RECURRING_PAY -
You were charged {2} by {1}
+
+Schema
+encryptedFile#a8008cd8 id:long access_hash:long size:long dc_id:int key_fingerprint:int = EncryptedFile;
+messageMediaDocument#9cb070d7 flags:# nopremium:flags.3?true document:flags.0?Document ttl_seconds:flags.2?int = MessageMedia;
+document#8fd4c4d8 flags:# id:long access_hash:long file_reference:bytes date:int mime_type:string size:long thumbs:flags.0?Vector<PhotoSize> video_thumbs:flags.1?Vector<VideoSize> dc_id:int attributes:Vector<DocumentAttribute> = Document;
+user#3ff6ecb0 flags:# self:flags.10?true contact:flags.11?true mutual_contact:flags.12?true deleted:flags.13?true bot:flags.14?true bot_chat_history:flags.15?true bot_nochats:flags.16?true verified:flags.17?true restricted:flags.18?true min:flags.20?true bot_inline_geo:flags.21?true support:flags.23?true scam:flags.24?true apply_min_photo:flags.25?true fake:flags.26?true bot_attach_menu:flags.27?true premium:flags.28?true attach_menu_enabled:flags.29?true id:long access_hash:flags.0?long first_name:flags.1?string last_name:flags.2?string username:flags.3?string phone:flags.4?string photo:flags.5?UserProfilePhoto status:flags.6?UserStatus bot_info_version:flags.14?int restriction_reason:flags.18?Vector<RestrictionReason> bot_inline_placeholder:flags.19?string lang_code:flags.22?string = User;
+botInfo#8f300b57 flags:# user_id:flags.0?long description:flags.1?string description_photo:flags.4?Photo description_document:flags.5?Document commands:flags.2?Vector<BotCommand> menu_button:flags.3?BotMenuButton = BotInfo;
+channel#8261ac61 flags:# creator:flags.0?true left:flags.2?true broadcast:flags.5?true verified:flags.7?true megagroup:flags.8?true restricted:flags.9?true signatures:flags.11?true min:flags.12?true scam:flags.19?true has_link:flags.20?true has_geo:flags.21?true slowmode_enabled:flags.22?true call_active:flags.23?true call_not_empty:flags.24?true fake:flags.25?true gigagroup:flags.26?true noforwards:flags.27?true join_to_send:flags.28?true join_request:flags.29?true id:long access_hash:flags.13?long title:string username:flags.6?string photo:ChatPhoto date:int restriction_reason:flags.9?Vector<RestrictionReason> admin_rights:flags.14?ChatAdminRights banned_rights:flags.15?ChatBannedRights default_banned_rights:flags.18?ChatBannedRights participants_count:flags.17?int = Chat;
+messages.featuredStickers#be382906 flags:# premium:flags.0?true hash:long count:int sets:Vector<StickerSetCovered> unread:Vector<long> = messages.FeaturedStickers;
+invoice#3e85a91b flags:# test:flags.0?true name_requested:flags.1?true phone_requested:flags.2?true email_requested:flags.3?true shipping_address_requested:flags.4?true flexible:flags.5?true phone_to_provider:flags.6?true email_to_provider:flags.7?true recurring:flags.9?true currency:string prices:Vector<LabeledPrice> max_tip_amount:flags.8?long suggested_tip_amounts:flags.8?Vector<long> recurring_terms_url:flags.9?string = Invoice;
+messageActionPaymentSentMe#8f31b327 flags:# recurring_init:flags.2?true recurring_used:flags.3?true currency:string total_amount:long payload:bytes info:flags.0?PaymentRequestedInfo shipping_option_id:flags.1?string charge:PaymentCharge = MessageAction;
+messageActionPaymentSent#96163f56 flags:# recurring_init:flags.2?true recurring_used:flags.3?true currency:string total_amount:long invoice_slug:flags.0?string = MessageAction;
+payments.paymentForm#b0133b37 flags:# can_save_credentials:flags.2?true password_missing:flags.3?true form_id:long bot_id:long title:string description:string photo:flags.5?WebDocument invoice:Invoice provider_id:long url:string native_provider:flags.4?string native_params:flags.4?DataJSON saved_info:flags.0?PaymentRequestedInfo saved_credentials:flags.1?PaymentSavedCredentials users:Vector<User> = payments.PaymentForm;
+fileHash#f39b035c offset:long limit:int hash:bytes = FileHash;
+secureFile#7d09c27e id:long access_hash:long size:long dc_id:int date:int file_hash:bytes secret:bytes = SecureFile;
+autoDownloadSettings#8efab953 flags:# disabled:flags.0?true video_preload_large:flags.1?true audio_preload_next:flags.2?true phonecalls_less_data:flags.3?true photo_size_max:int video_size_max:long file_size_max:long video_upload_maxbitrate:int = AutoDownloadSettings;
+availableReaction#c077ec01 flags:# inactive:flags.0?true premium:flags.2?true reaction:string title:string static_icon:Document appear_animation:Document select_animation:Document activate_animation:Document effect_animation:Document around_animation:flags.1?Document center_icon:flags.1?Document = AvailableReaction;
+attachMenuBot#c8aa2cd2 flags:# inactive:flags.0?true has_settings:flags.1?true bot_id:long short_name:string peer_types:Vector<AttachMenuPeerType> icons:Vector<AttachMenuBotIcon> = AttachMenuBot;
+attachMenuPeerTypeSameBotPM#7d6be90e = AttachMenuPeerType;
+attachMenuPeerTypeBotPM#c32bfa1a = AttachMenuPeerType;
+attachMenuPeerTypePM#f146d31f = AttachMenuPeerType;
+attachMenuPeerTypeChat#0509113f = AttachMenuPeerType;
+attachMenuPeerTypeBroadcast#7bfbdefc = AttachMenuPeerType;
+chatInvitePublicJoinRequests#ed107ab7 = ExportedChatInvite;
+inputInvoiceMessage#c5b56859 peer:InputPeer msg_id:int = InputInvoice;
+inputInvoiceSlug#c326caef slug:string = InputInvoice;
+payments.exportedInvoice#aed0cbd9 url:string = payments.ExportedInvoice;
+updateTranscribedAudio#0084cd5a flags:# pending:flags.0?true peer:Peer msg_id:int transcription_id:long text:string = Update;
+messages.transcribedAudio#93752c52 flags:# pending:flags.0?true transcription_id:long text:string = messages.TranscribedAudio;
+dialogFilterDefault#363293ae = DialogFilter;
+help.premiumPromo#8a4f3c29 status_text:string status_entities:Vector<MessageEntity> video_sections:Vector<string> videos:Vector<Document> currency:string monthly_amount:long users:Vector<User> = help.PremiumPromo;
+---functions---
+upload.getFile#be5335be flags:# precise:flags.0?true cdn_supported:flags.1?true location:InputFileLocation offset:long limit:int = upload.File;
+account.deleteAccount#a2c0cf74 flags:# reason:string password:flags.0?InputCheckPasswordSRP = Bool;
+messages.getDocumentByHash#b1f2061f sha256:bytes size:long mime_type:string = Document;
+payments.getPaymentForm#37148dbb flags:# invoice:InputInvoice theme_params:flags.0?DataJSON = payments.PaymentForm;
+payments.validateRequestedInfo#b6c8f12b flags:# save:flags.0?true invoice:InputInvoice info:PaymentRequestedInfo = payments.ValidatedRequestedInfo;
+payments.sendPaymentForm#2d03522f flags:# form_id:long invoice:InputInvoice requested_info_id:flags.0?string shipping_option_id:flags.1?string credentials:InputPaymentCredentials tip_amount:flags.2?long = payments.PaymentResult;
+upload.getCdnFile#395f69da file_token:bytes offset:long limit:int = upload.CdnFile;
+upload.getCdnFileHashes#91dc3f31 file_token:bytes offset:long = Vector<FileHash>;
+upload.getFileHashes#9156982a location:InputFileLocation offset:long = Vector<FileHash>;
+account.initTakeoutSession#8ef3eab0 flags:# contacts:flags.0?true message_users:flags.1?true message_chats:flags.2?true message_megagroups:flags.3?true message_channels:flags.4?true files:flags.5?true file_max_size:flags.5?long = account.Takeout;
+messages.requestWebView#91b15831 flags:# from_bot_menu:flags.4?true silent:flags.5?true peer:InputPeer bot:InputUser url:flags.1?string start_param:flags.3?string theme_params:flags.2?DataJSON reply_to_msg_id:flags.0?int send_as:flags.13?InputPeer = WebViewResult;
+messages.prolongWebView#ea5fbcce flags:# silent:flags.5?true peer:InputPeer bot:InputUser query_id:long reply_to_msg_id:flags.0?int send_as:flags.13?InputPeer = Bool;
+channels.toggleJoinToSend#e4cb9580 channel:InputChannel enabled:Bool = Updates;
+channels.toggleJoinRequest#4c2985b6 channel:InputChannel enabled:Bool = Updates;
+payments.exportInvoice#0f91b065 invoice_media:InputMedia = payments.ExportedInvoice;
+messages.transcribeAudio#269e9a49 peer:InputPeer msg_id:int = messages.TranscribedAudio;
+messages.rateTranscribedAudio#7f1d072f peer:InputPeer msg_id:int transcription_id:long good:Bool = Bool;
+payments.assignAppStoreTransaction#0d5ccfd0 flags:# restore:flags.0?true receipt:bytes = Updates;
+payments.assignPlayMarketTransaction#4faa4aed purchase_token:string = Updates;
+payments.canPurchasePremium#aa6a90c8 = Bool;
+help.getPremiumPromo#b81b93d4 = help.PremiumPromo;
+End-to-end schema changes
+New Constructors
+
+- Added decryptedMessageMediaDocument - Document attached to a message in a secret chat.
+
+End-to-end schema
+===143===
+decryptedMessageMediaDocument#6abd9782 thumb:bytes thumb_w:int thumb_h:int mime_type:string size:long key:bytes iv:bytes attributes:Vector<DocumentAttribute> caption:string = DecryptedMessageMedia;
+Layer 142
+Allow TCP WebRTC connections.
+Schema changes
+Changed Constructors
+
+- Added flags, tcp parameters in phoneConnection
+
+Schema
+phoneConnection#9cc123c7 flags:# tcp:flags.0?true id:long ip:string ipv6:string port:int peer_tag:bytes = PhoneConnection;
+Layer 140
+Introducing:
+
+- Attachment menus
+- Bot web apps
+- Custom bot menu buttons
+- Suggested bot admin rights
+- Ringtones
+- Deletion of all our supergroup messages for everyone
+- Recommended sponsored messages
+- A
force_try_ipv6
config flag indicating that clients must prioritize IPv6 over IPv4 for all MTProto transports, even if an IPv4 connection is available.
+- A
this_port_only
DC port flag indicating that clients must use only the specified port, without trying any other port as specified in the transport docs.
+- A
can_delete_channel
channelFull flag indicating whether the current user can delete a channel or supergroup.
+
+Schema changes
+New Methods
+
+- Added messages.getAttachMenuBots - Returns installed attachment menu bot web apps »
+- Added messages.getAttachMenuBot - Returns attachment menu entry for a bot web app that can be launched from the attachment menu »
+- Added messages.toggleBotInAttachMenu - Enable or disable web bot attachment menu »
+- Added messages.requestWebView - Open a bot web app, sending over user information after user confirmation.
+- Added messages.prolongWebView - Indicate to the server (from the user side) that the user is still using a web app.
+- Added messages.requestSimpleWebView - Open a bot web app.
+- Added messages.sendWebViewResultMessage - Terminate webview interaction started with messages.requestWebView, sending the specified message to the chat on behalf of the user.
+- Added messages.sendWebViewData - Used by the user to relay data from an opened reply keyboard bot web app to the bot that owns it.
+- Added bots.setBotMenuButton - Sets the menu button action » for a given user or for all users
+- Added bots.getBotMenuButton - Gets the menu button action for a given user or for all users, previously set using bots.setBotMenuButton; users can see this information in the botInfo constructor.
+- Added account.getSavedRingtones - Fetch saved notification sounds
+- Added account.saveRingtone - Save or remove saved notification sound.
+- Added account.uploadRingtone - Upload notification sound, use account.saveRingtone to convert it and add it to the list of saved notification sounds.
+- Added bots.setBotBroadcastDefaultAdminRights - Set the default suggested admin rights for bots being added as admins to channels, see here for more info on how to handle them ».
+- Added bots.setBotGroupDefaultAdminRights - Set the default suggested admin rights for bots being added as admins to groups, see here for more info on how to handle them ».
+- Added phone.saveCallLog - Save phone call debug information
+
+Changed Methods
+
+- Changed type of channels.deleteHistory from Bool to Updates
+- Added flags, for_everyone parameters in channels.deleteHistory
+
+New Constructors
+
+- Added attachMenuBotIconColor - Represents an attachment menu icon color for bot web apps »
+- Added attachMenuBotIcon - Represents an attachment menu icon for bot web apps »
+- Added attachMenuBot - Represents a bot web app that can be launched from the attachment menu »
+- Added attachMenuBotsNotModified - The list of bot web apps hasn't changed
+- Added attachMenuBots - Represents a list of bot web apps that can be launched from the attachment menu »
+- Added attachMenuBotsBot - Represents a bot web app that can be launched from the attachment menu »
+- Added updateAttachMenuBots - The list of installed attachment menu entries » has changed, use messages.getAttachMenuBots to fetch the updated list.
+- Added webViewResultUrl - Contains the webview URL with appropriate theme and user info parameters added
+- Added simpleWebViewResultUrl - Contains the webview URL with appropriate theme parameters added
+- Added webViewMessageSent - Info about a sent inline webview message
+- Added updateWebViewResultSent - Indicates to a bot that a webview was closed and an inline message was sent on behalf of the user using messages.sendWebViewResultMessage
+- Added keyboardButtonWebView - Button to open a bot web app using messages.requestWebView, sending over user information after user confirmation.
+- Added keyboardButtonSimpleWebView - Button to open a bot web app using messages.requestSimpleWebView, without sending user information to the web app.
+- Added messageActionWebViewDataSentMe - Data from an opened reply keyboard bot web app was relayed to the bot that owns it (bot side service message).
+- Added messageActionWebViewDataSent - Data from an opened reply keyboard bot web app was relayed to the bot that owns it (user side service message).
+- Added updateBotMenuButton - The menu button behavior for the specified bot has changed
+- Added botMenuButtonDefault - Placeholder bot menu button never returned to users: see the docs for more info.
+- Added botMenuButtonCommands - Bot menu button that opens the bot command list when clicked.
+- Added botMenuButton - Bot menu button that opens a web app when clicked.
+- Added account.savedRingtonesNotModified - The notification sound list hasn't changed.
+- Added account.savedRingtones - A list of saved notification sounds
+- Added updateSavedRingtones - The list of saved notification sounds has changed, use account.getSavedRingtones to fetch the new list.
+- Added notificationSoundDefault - Indicates the default notification sound should be used
+- Added notificationSoundNone - No notification sound should be used
+- Added notificationSoundLocal - Indicates a specific local notification sound should be used
+- Added notificationSoundRingtone - A specific previously uploaded notification sound should be used
+- Added account.savedRingtone - The notification sound was already in MP3 format and was saved without any modification
+- Added account.savedRingtoneConverted - The notification sound was not in MP3 format and was successfully converted and saved, use the returned Document to refer to the notification sound from now on
+
+Changed Constructors
+
+- Removed kicked parameter in chat
+- Changed type of sound from flags.3?string to flags.3?NotificationSound in inputPeerNotifySettings
+- Added ios_sound, android_sound, other_sound parameters, removed sound parameter in peerNotifySettings
+- Added bot_group_admin_rights, bot_broadcast_admin_rights parameters in userFull
+- Added this_port_only parameter in dcOption
+- Added force_try_ipv6 parameter in config
+- Added bot_attach_menu parameter in user
+- Added menu_button parameter in botInfo
+- Added flags2, can_delete_channel parameters in channelFull
+- Added recommended parameter in sponsoredMessage
+
+Schema
+chat#41cbf256 flags:# creator:flags.0?true left:flags.2?true deactivated:flags.5?true call_active:flags.23?true call_not_empty:flags.24?true noforwards:flags.25?true id:long title:string photo:ChatPhoto participants_count:int date:int version:int migrated_to:flags.6?InputChannel admin_rights:flags.14?ChatAdminRights default_banned_rights:flags.18?ChatBannedRights = Chat;
+inputPeerNotifySettings#df1f002b flags:# show_previews:flags.0?Bool silent:flags.1?Bool mute_until:flags.2?int sound:flags.3?NotificationSound = InputPeerNotifySettings;
+peerNotifySettings#a83b0426 flags:# show_previews:flags.0?Bool silent:flags.1?Bool mute_until:flags.2?int ios_sound:flags.3?NotificationSound android_sound:flags.4?NotificationSound other_sound:flags.5?NotificationSound = PeerNotifySettings;
+userFull#8c72ea81 flags:# blocked:flags.0?true phone_calls_available:flags.4?true phone_calls_private:flags.5?true can_pin_message:flags.7?true has_scheduled:flags.12?true video_calls_available:flags.13?true id:long about:flags.1?string settings:PeerSettings profile_photo:flags.2?Photo notify_settings:PeerNotifySettings bot_info:flags.3?BotInfo pinned_msg_id:flags.6?int common_chats_count:int folder_id:flags.11?int ttl_period:flags.14?int theme_emoticon:flags.15?string private_forward_name:flags.16?string bot_group_admin_rights:flags.17?ChatAdminRights bot_broadcast_admin_rights:flags.18?ChatAdminRights = UserFull;
+dcOption#18b7a10d flags:# ipv6:flags.0?true media_only:flags.1?true tcpo_only:flags.2?true cdn:flags.3?true static:flags.4?true this_port_only:flags.5?true id:int ip_address:string port:int secret:flags.10?bytes = DcOption;
+config#330b4067 flags:# phonecalls_enabled:flags.1?true default_p2p_contacts:flags.3?true preload_featured_stickers:flags.4?true ignore_phone_entities:flags.5?true revoke_pm_inbox:flags.6?true blocked_mode:flags.8?true pfs_enabled:flags.13?true force_try_ipv6:flags.14?true date:int expires:int test_mode:Bool this_dc:int dc_options:Vector<DcOption> dc_txt_domain_name:string chat_size_max:int megagroup_size_max:int forwarded_count_max:int online_update_period_ms:int offline_blur_timeout_ms:int offline_idle_timeout_ms:int online_cloud_timeout_ms:int notify_cloud_delay_ms:int notify_default_delay_ms:int push_chat_period_ms:int push_chat_limit:int saved_gifs_limit:int edit_time_limit:int revoke_time_limit:int revoke_pm_time_limit:int rating_e_decay:int stickers_recent_limit:int stickers_faved_limit:int channels_read_media_period:int tmp_sessions:flags.0?int pinned_dialogs_count_max:int pinned_infolder_count_max:int call_receive_timeout_ms:int call_ring_timeout_ms:int call_connect_timeout_ms:int call_packet_timeout_ms:int me_url_prefix:string autoupdate_url_prefix:flags.7?string gif_search_username:flags.9?string venue_search_username:flags.10?string img_search_username:flags.11?string static_maps_provider:flags.12?string caption_length_max:int message_length_max:int webfile_dc_id:int suggested_lang_code:flags.2?string lang_pack_version:flags.2?int base_lang_pack_version:flags.2?int = Config;
+user#3ff6ecb0 flags:# self:flags.10?true contact:flags.11?true mutual_contact:flags.12?true deleted:flags.13?true bot:flags.14?true bot_chat_history:flags.15?true bot_nochats:flags.16?true verified:flags.17?true restricted:flags.18?true min:flags.20?true bot_inline_geo:flags.21?true support:flags.23?true scam:flags.24?true apply_min_photo:flags.25?true fake:flags.26?true bot_attach_menu:flags.27?true id:long access_hash:flags.0?long first_name:flags.1?string last_name:flags.2?string username:flags.3?string phone:flags.4?string photo:flags.5?UserProfilePhoto status:flags.6?UserStatus bot_info_version:flags.14?int restriction_reason:flags.18?Vector<RestrictionReason> bot_inline_placeholder:flags.19?string lang_code:flags.22?string = User;
+botInfo#e4169b5d user_id:long description:string commands:Vector<BotCommand> menu_button:BotMenuButton = BotInfo;
+channelFull#ea68a619 flags:# can_view_participants:flags.3?true can_set_username:flags.6?true can_set_stickers:flags.7?true hidden_prehistory:flags.10?true can_set_location:flags.16?true has_scheduled:flags.19?true can_view_stats:flags.20?true blocked:flags.22?true flags2:# can_delete_channel:flags2.0?true id:long about:string participants_count:flags.0?int admins_count:flags.1?int kicked_count:flags.2?int banned_count:flags.2?int online_count:flags.13?int read_inbox_max_id:int read_outbox_max_id:int unread_count:int chat_photo:Photo notify_settings:PeerNotifySettings exported_invite:flags.23?ExportedChatInvite bot_info:Vector<BotInfo> migrated_from_chat_id:flags.4?long migrated_from_max_id:flags.4?int pinned_msg_id:flags.5?int stickerset:flags.8?StickerSet available_min_id:flags.9?int folder_id:flags.11?int linked_chat_id:flags.14?long location:flags.15?ChannelLocation slowmode_seconds:flags.17?int slowmode_next_send_date:flags.18?int stats_dc:flags.12?int pts:int call:flags.21?InputGroupCall ttl_period:flags.24?int pending_suggestions:flags.25?Vector<string> groupcall_default_join_as:flags.26?Peer theme_emoticon:flags.27?string requests_pending:flags.28?int recent_requesters:flags.28?Vector<long> default_send_as:flags.29?Peer available_reactions:flags.30?Vector<string> = ChatFull;
+sponsoredMessage#3a836df8 flags:# recommended:flags.5?true random_id:bytes from_id:flags.3?Peer chat_invite:flags.4?ChatInvite chat_invite_hash:flags.4?string channel_post:flags.2?int start_param:flags.0?string message:string entities:flags.1?Vector<MessageEntity> = SponsoredMessage;
+attachMenuBotIconColor#4576f3f0 name:string color:int = AttachMenuBotIconColor;
+attachMenuBotIcon#b2a7386b flags:# name:string icon:Document colors:flags.0?Vector<AttachMenuBotIconColor> = AttachMenuBotIcon;
+attachMenuBot#e93cb772 flags:# inactive:flags.0?true bot_id:long short_name:string icons:Vector<AttachMenuBotIcon> = AttachMenuBot;
+attachMenuBotsNotModified#f1d88a5c = AttachMenuBots;
+attachMenuBots#3c4301c0 hash:long bots:Vector<AttachMenuBot> users:Vector<User> = AttachMenuBots;
+attachMenuBotsBot#93bf667f bot:AttachMenuBot users:Vector<User> = AttachMenuBotsBot;
+updateAttachMenuBots#17b7a20b = Update;
+webViewResultUrl#0c14557c query_id:long url:string = WebViewResult;
+simpleWebViewResultUrl#882f76bb url:string = SimpleWebViewResult;
+webViewMessageSent#0c94511c flags:# msg_id:flags.0?InputBotInlineMessageID = WebViewMessageSent;
+updateWebViewResultSent#1592b79d query_id:long = Update;
+keyboardButtonWebView#13767230 text:string url:string = KeyboardButton;
+keyboardButtonSimpleWebView#a0c0505c text:string url:string = KeyboardButton;
+messageActionWebViewDataSentMe#47dd8079 text:string data:string = MessageAction;
+messageActionWebViewDataSent#b4c38cb5 text:string = MessageAction;
+updateBotMenuButton#14b85813 bot_id:long button:BotMenuButton = Update;
+botMenuButtonDefault#7533a588 = BotMenuButton;
+botMenuButtonCommands#4258c205 = BotMenuButton;
+botMenuButton#c7b57ce6 text:string url:string = BotMenuButton;
+account.savedRingtonesNotModified#fbf6e8b1 = account.SavedRingtones;
+account.savedRingtones#c1e92cc5 hash:long ringtones:Vector<Document> = account.SavedRingtones;
+updateSavedRingtones#74d8be99 = Update;
+notificationSoundDefault#97e8bebe = NotificationSound;
+notificationSoundNone#6f0c34df = NotificationSound;
+notificationSoundLocal#830b9ae4 title:string data:string = NotificationSound;
+notificationSoundRingtone#ff6c8049 id:long = NotificationSound;
+account.savedRingtone#b7263f6d = account.SavedRingtone;
+account.savedRingtoneConverted#1f307eb7 document:Document = account.SavedRingtone;
+---functions---
+channels.deleteHistory#9baa9647 flags:# for_everyone:flags.0?true channel:InputChannel max_id:int = Updates;
+messages.getAttachMenuBots#16fcc2cb hash:long = AttachMenuBots;
+messages.getAttachMenuBot#77216192 bot:InputUser = AttachMenuBotsBot;
+messages.toggleBotInAttachMenu#1aee33af bot:InputUser enabled:Bool = Bool;
+messages.requestWebView#0fa04dff flags:# from_bot_menu:flags.4?true silent:flags.5?true peer:InputPeer bot:InputUser url:flags.1?string start_param:flags.3?string theme_params:flags.2?DataJSON reply_to_msg_id:flags.0?int = WebViewResult;
+messages.prolongWebView#d22ad148 flags:# silent:flags.5?true peer:InputPeer bot:InputUser query_id:long reply_to_msg_id:flags.0?int = Bool;
+messages.requestSimpleWebView#6abb2f73 flags:# bot:InputUser url:string theme_params:flags.0?DataJSON = SimpleWebViewResult;
+messages.sendWebViewResultMessage#0a4314f5 bot_query_id:string result:InputBotInlineResult = WebViewMessageSent;
+messages.sendWebViewData#dc0242c8 bot:InputUser random_id:long button_text:string data:string = Updates;
+bots.setBotMenuButton#4504d54f user_id:InputUser button:BotMenuButton = Bool;
+bots.getBotMenuButton#9c60eb28 user_id:InputUser = BotMenuButton;
+account.getSavedRingtones#e1902288 hash:long = account.SavedRingtones;
+account.saveRingtone#3dea5b03 id:InputDocument unsave:Bool = account.SavedRingtone;
+account.uploadRingtone#831a83a2 file:InputFile file_name:string mime_type:string = Document;
+bots.setBotBroadcastDefaultAdminRights#788464e1 admin_rights:ChatAdminRights = Bool;
+bots.setBotGroupDefaultAdminRights#925ec9ea admin_rights:ChatAdminRights = Bool;
+phone.saveCallLog#41248786 peer:InputPhoneCall file:InputFile = Bool;
+Layer 139
+RTMP streams in group calls and livestreams, link to users by their phone number, browse recently sent media and new report options for illegal drugs and personal details.
+The RPC error database » was also updated.
+Schema changes
+New Methods
+
+- Added contacts.resolvePhone - Resolve a phone number to get user info, if their privacy settings allow it.
+- Added phone.getGroupCallStreamChannels - Get info about RTMP streams in a group call or livestream.
+- Added phone.getGroupCallStreamRtmpUrl - Get RTMP URL and stream key for RTMP livestreams. Can be used even before creating the actual RTMP livestream with phone.createGroupCall (the
rtmp_stream
flag must be set).
+- Added messages.searchSentMedia - View and search recently sent media.
+
+Changed Methods
+
+- Added rtmp_stream parameter in phone.createGroupCall
+
+New Constructors
+
+- Added groupCallStreamChannel - Info about an RTMP stream in a group call or livestream
+- Added phone.groupCallStreamChannels - Info about RTMP streams in a group call or livestream
+- Added inputReportReasonIllegalDrugs - Report for illegal drugs
+- Added inputReportReasonPersonalDetails - Report for divulgation of personal details
+- Added phone.groupCallStreamRtmpUrl - RTMP URL and stream key to be used in streaming software
+
+Changed Constructors
+
+- Added rtmp_stream, listeners_hidden parameters in groupCall
+
+Schema
+groupCall#d597650c flags:# join_muted:flags.1?true can_change_join_muted:flags.2?true join_date_asc:flags.6?true schedule_start_subscribed:flags.8?true can_start_video:flags.9?true record_video_active:flags.11?true rtmp_stream:flags.12?true listeners_hidden:flags.13?true id:long access_hash:long participants_count:int title:flags.3?string stream_dc_id:flags.4?int record_start_date:flags.5?int schedule_date:flags.7?int unmuted_video_count:flags.10?int unmuted_video_limit:int version:int = GroupCall;
+groupCallStreamChannel#80eb48af channel:int scale:int last_timestamp_ms:long = GroupCallStreamChannel;
+phone.groupCallStreamChannels#d0e482b2 channels:Vector<GroupCallStreamChannel> = phone.GroupCallStreamChannels;
+inputReportReasonIllegalDrugs#0a8eb2be = ReportReason;
+inputReportReasonPersonalDetails#9ec7863d = ReportReason;
+phone.groupCallStreamRtmpUrl#2dbf3432 url:string key:string = phone.GroupCallStreamRtmpUrl;
+---functions---
+phone.createGroupCall#48cdc6d8 flags:# rtmp_stream:flags.2?true peer:InputPeer random_id:int title:flags.0?string schedule_date:flags.1?int = Updates;
+contacts.resolvePhone#8af94344 phone:string = contacts.ResolvedPeer;
+phone.getGroupCallStreamChannels#1ab21940 call:InputGroupCall = phone.GroupCallStreamChannels;
+phone.getGroupCallStreamRtmpUrl#deb3abbf peer:InputPeer revoke:Bool = phone.GroupCallStreamRtmpUrl;
+messages.searchSentMedia#107e31a0 q:string filter:MessagesFilter limit:int = messages.Messages;
+Layer 138
+Video stickers, better reactions.
+Schema changes
+New Methods
+
+- Added messages.getUnreadReactions - Get unread reactions to messages you sent
+- Added messages.readReactions - Mark message reactions » as read
+
+Changed Methods
+
+- Added videos parameter in stickers.createStickerSet
+
+New Constructors
+
+- Added messagePeerReaction - How a certain peer reacted to the message
+
+Changed Constructors
+
+- Added unread_reactions_count parameter in dialog
+- Added videos parameter in stickerSet
+- Added recent_reactions parameter, removed recent_reactons parameter in messageReactions
+- Added chats parameter, changed type of reactions from Vector<MessageUserReaction> to Vector<MessagePeerReaction> in messages.messageReactionsList
+
+Deleted Constructors
+
+- Removed messageUserReaction
+
+Schema
+dialog#a8edd0f5 flags:# pinned:flags.2?true unread_mark:flags.3?true peer:Peer top_message:int read_inbox_max_id:int read_outbox_max_id:int unread_count:int unread_mentions_count:int unread_reactions_count:int notify_settings:PeerNotifySettings pts:flags.0?int draft:flags.1?DraftMessage folder_id:flags.4?int = Dialog;
+stickerSet#d7df217a flags:# archived:flags.1?true official:flags.2?true masks:flags.3?true animated:flags.5?true videos:flags.6?true installed_date:flags.0?int id:long access_hash:long title:string short_name:string thumbs:flags.4?Vector<PhotoSize> thumb_dc_id:flags.4?int thumb_version:flags.4?int count:int hash:int = StickerSet;
+messageReactions#4f2b9479 flags:# min:flags.0?true can_see_list:flags.2?true results:Vector<ReactionCount> recent_reactions:flags.1?Vector<MessagePeerReaction> = MessageReactions;
+messages.messageReactionsList#31bd492d flags:# count:int reactions:Vector<MessagePeerReaction> chats:Vector<Chat> users:Vector<User> next_offset:flags.0?string = messages.MessageReactionsList;
+messagePeerReaction#51b67eff flags:# big:flags.0?true unread:flags.1?true peer_id:Peer reaction:string = MessagePeerReaction;
+---functions---
+stickers.createStickerSet#9021ab67 flags:# masks:flags.0?true animated:flags.1?true videos:flags.4?true user_id:InputUser title:string short_name:string thumb:flags.2?InputDocument stickers:Vector<InputStickerSetItem> software:flags.3?string = messages.StickerSet;
+messages.getUnreadReactions#e85bae1a peer:InputPeer offset_id:int add_offset:int limit:int max_id:int min_id:int = messages.Messages;
+messages.readReactions#82e251d7 peer:InputPeer = messages.AffectedHistory;
+Layer 137
+
+Schema changes
+New Methods
+
+- Added messages.translateText - Translate a given text.
+
+New Constructors
+
+- Added messages.translateNoResult - No translation is available
+- Added messages.translateResultText - Translated text
+
+Changed Constructors
+
+- Added around_animation, center_icon parameters in availableReaction
+
+Schema
+availableReaction#c077ec01 flags:# inactive:flags.0?true reaction:string title:string static_icon:Document appear_animation:Document select_animation:Document activate_animation:Document effect_animation:Document around_animation:flags.1?Document center_icon:flags.1?Document = AvailableReaction;
+messages.translateNoResult#67ca4737 = messages.TranslatedText;
+messages.translateResultText#a214f7d0 text:string = messages.TranslatedText;
+---functions---
+messages.translateText#24ce6dee flags:# peer:flags.0?InputPeer msg_id:flags.0?int text:flags.1?string from_lang:flags.2?string to_lang:string = messages.TranslatedText;
+Layer 136
+Reactions, spoilers and sponsored message improvements.
+Schema changes
+New Methods
+
+- Added messages.sendReaction - React to message.
+- Added messages.getMessagesReactions - Get message reactions »
+- Added messages.getMessageReactionsList - Get message reaction list, along with the sender of each reaction.
+- Added messages.setChatAvailableReactions - Change the set of message reactions » that can be used in a certain group, supergroup or channel
+- Added messages.getAvailableReactions - Obtain available message reactions »
+- Added messages.setDefaultReaction - Change default emoji reaction to use in the quick reaction menu: the value is synced across devices and can be fetched using help.getConfig,
reactions_default
field.
+
+New Constructors
+
+- Added updateMessageReactions - New message reactions » are available
+- Added reactionCount - Reactions
+- Added messageReactions - Message reactions »
+- Added messageUserReaction - Message reaction
+- Added messages.messageReactionsList - List of peers that reacted to a specific message
+- Added availableReaction - Animations associated with a message reaction
+- Added messages.availableReactionsNotModified - No new reactions are available
+- Added messages.availableReactions - Animations and metadata associated with message reactions »
+- Added messageEntitySpoiler - Message entity representing a spoiler
+- Added channelAdminLogEventActionChangeAvailableReactions - The set of allowed message reactions » for this channel has changed
+
+Changed Constructors
+
+- Added available_reactions parameter in chatFull
+- Added reactions parameter in message
+- Added available_reactions parameter in channelFull
+- Added chat_invite, chat_invite_hash parameters, changed type of from_id from Peer to flags.3?Peer in sponsoredMessage
+
+PUSH notification changes
+New PUSH notifications
+
+- Added CHAT_REACT_AUDIO -
{1}: {3} to your voice message in {2}
+- Added CHAT_REACT_CONTACT -
{1}: {3} to your contact {4} in {2}
+- Added CHAT_REACT_DOC -
{1}: {3} to your file in {2}
+- Added CHAT_REACT_GAME -
{1}: {3} to your game in {2}
+- Added CHAT_REACT_GEO -
{1}: {3} to your map in {2}
+- Added CHAT_REACT_GEOLIVE -
{1}: {3} to your live location in {2}
+- Added CHAT_REACT_GIF -
{1}: {3} to your GIF in {2}
+- Added CHAT_REACT_INVOICE -
{1}: {3} to your invoice in {2}
+- Added CHAT_REACT_NOTEXT -
{1}: {3} to your message in {2}
+- Added CHAT_REACT_PHOTO -
{1}: {3} to your photo in {2}
+- Added CHAT_REACT_POLL -
{1}: {3} to your poll {4} in {2}
+- Added CHAT_REACT_QUIZ -
{1}: {3} to your quiz {4} in {2}
+- Added CHAT_REACT_ROUND -
{1}: {3} to your video message in {2}
+- Added CHAT_REACT_STICKER -
{1}: {3} to your {4} sticker in {2}
+- Added CHAT_REACT_TEXT -
{1}: {3} in {2} to your "{4}"
+- Added CHAT_REACT_VIDEO -
{1}: {3} to your video in {2}
+- Added REACT_AUDIO -
{1}: {2} to your voice message
+- Added REACT_CONTACT -
{1}: {2} to your contact {3}
+- Added REACT_DOC -
{1}: {2} to your file
+- Added REACT_GAME -
{1}: {2} to your game
+- Added REACT_GEO -
{1}: {2} to your map
+- Added REACT_GEOLIVE -
{1}: {2} to your live location
+- Added REACT_GIF -
{1}: {2} to your GIF
+- Added REACT_INVOICE -
{1}: {2} to your invoice
+- Added REACT_NOTEXT -
{1}: {2} to your message
+- Added REACT_PHOTO -
{1}: {2} to your photo
+- Added REACT_POLL -
{1}: {2} to your poll {3}
+- Added REACT_QUIZ -
{1}: {2} to your quiz {3}
+- Added REACT_ROUND -
{1}: {2} to your video message
+- Added REACT_STICKER -
{1}: {2} to your {3} sticker
+- Added REACT_TEXT -
{1}: {2} to your "{3}"
+- Added REACT_VIDEO -
{1}: {2} to your video
+
+Schema
+chatFull#d18ee226 flags:# can_set_username:flags.7?true has_scheduled:flags.8?true id:long about:string participants:ChatParticipants chat_photo:flags.2?Photo notify_settings:PeerNotifySettings exported_invite:flags.13?ExportedChatInvite bot_info:flags.3?Vector<BotInfo> pinned_msg_id:flags.6?int folder_id:flags.11?int call:flags.12?InputGroupCall ttl_period:flags.14?int groupcall_default_join_as:flags.15?Peer theme_emoticon:flags.16?string requests_pending:flags.17?int recent_requesters:flags.17?Vector<long> available_reactions:flags.18?Vector<string> = ChatFull;
+message#38116ee0 flags:# out:flags.1?true mentioned:flags.4?true media_unread:flags.5?true silent:flags.13?true post:flags.14?true from_scheduled:flags.18?true legacy:flags.19?true edit_hide:flags.21?true pinned:flags.24?true noforwards:flags.26?true id:int from_id:flags.8?Peer peer_id:Peer fwd_from:flags.2?MessageFwdHeader via_bot_id:flags.11?long reply_to:flags.3?MessageReplyHeader date:int message:string media:flags.9?MessageMedia reply_markup:flags.6?ReplyMarkup entities:flags.7?Vector<MessageEntity> views:flags.10?int forwards:flags.10?int replies:flags.23?MessageReplies edit_date:flags.15?int post_author:flags.16?string grouped_id:flags.17?long reactions:flags.20?MessageReactions restriction_reason:flags.22?Vector<RestrictionReason> ttl_period:flags.25?int = Message;
+channelFull#e13c3d20 flags:# can_view_participants:flags.3?true can_set_username:flags.6?true can_set_stickers:flags.7?true hidden_prehistory:flags.10?true can_set_location:flags.16?true has_scheduled:flags.19?true can_view_stats:flags.20?true blocked:flags.22?true id:long about:string participants_count:flags.0?int admins_count:flags.1?int kicked_count:flags.2?int banned_count:flags.2?int online_count:flags.13?int read_inbox_max_id:int read_outbox_max_id:int unread_count:int chat_photo:Photo notify_settings:PeerNotifySettings exported_invite:flags.23?ExportedChatInvite bot_info:Vector<BotInfo> migrated_from_chat_id:flags.4?long migrated_from_max_id:flags.4?int pinned_msg_id:flags.5?int stickerset:flags.8?StickerSet available_min_id:flags.9?int folder_id:flags.11?int linked_chat_id:flags.14?long location:flags.15?ChannelLocation slowmode_seconds:flags.17?int slowmode_next_send_date:flags.18?int stats_dc:flags.12?int pts:int call:flags.21?InputGroupCall ttl_period:flags.24?int pending_suggestions:flags.25?Vector<string> groupcall_default_join_as:flags.26?Peer theme_emoticon:flags.27?string requests_pending:flags.28?int recent_requesters:flags.28?Vector<long> default_send_as:flags.29?Peer available_reactions:flags.30?Vector<string> = ChatFull;
+sponsoredMessage#3a836df8 flags:# random_id:bytes from_id:flags.3?Peer chat_invite:flags.4?ChatInvite chat_invite_hash:flags.4?string channel_post:flags.2?int start_param:flags.0?string message:string entities:flags.1?Vector<MessageEntity> = SponsoredMessage;
+updateMessageReactions#154798c3 peer:Peer msg_id:int reactions:MessageReactions = Update;
+reactionCount#6fb250d1 flags:# chosen:flags.0?true reaction:string count:int = ReactionCount;
+messageReactions#087b6e36 flags:# min:flags.0?true can_see_list:flags.2?true results:Vector<ReactionCount> recent_reactons:flags.1?Vector<MessageUserReaction> = MessageReactions;
+messageUserReaction#932844fa user_id:long reaction:string = MessageUserReaction;
+messages.messageReactionsList#a366923c flags:# count:int reactions:Vector<MessageUserReaction> users:Vector<User> next_offset:flags.0?string = messages.MessageReactionsList;
+availableReaction#021d7c4b flags:# inactive:flags.0?true reaction:string title:string static_icon:Document appear_animation:Document select_animation:Document activate_animation:Document effect_animation:Document = AvailableReaction;
+messages.availableReactionsNotModified#9f071957 = messages.AvailableReactions;
+messages.availableReactions#768e3aad hash:int reactions:Vector<AvailableReaction> = messages.AvailableReactions;
+messageEntitySpoiler#32ca960f offset:int length:int = MessageEntity;
+channelAdminLogEventActionChangeAvailableReactions#9cf7f76a prev_value:Vector<string> new_value:Vector<string> = ChannelAdminLogEventAction;
+---functions---
+messages.sendReaction#25690ce4 flags:# big:flags.1?true peer:InputPeer msg_id:int reaction:flags.0?string = Updates;
+messages.getMessagesReactions#8bba90e6 peer:InputPeer id:Vector<int> = Updates;
+messages.getMessageReactionsList#e0ee6b77 flags:# peer:InputPeer id:int reaction:flags.0?string offset:flags.1?string limit:int = messages.MessageReactionsList;
+messages.setChatAvailableReactions#14050ea6 peer:InputPeer available_reactions:Vector<string> = Updates;
+messages.getAvailableReactions#18dea0ac hash:int = messages.AvailableReactions;
+messages.setDefaultReaction#d960c4d4 reaction:string = Bool;
+Layer 135
+Anonymous posting in public groups, protected content, device management, login via missed call, mention users in inline buttons even if they don't have a username, future auth tokens, improvements to join requests and stickers.
+Schema changes
+New Methods
+
+- Added messages.hideAllChatJoinRequests - Dismiss or approve all join requests related to a specific chat or channel.
+- Added messages.toggleNoForwards - Enable or disable content protection on a channel or chat
+- Added messages.saveDefaultSendAs - Change the default peer that should be used when sending messages to a specific group
+- Added channels.getSendAs - Obtains a list of peers that can be used to send messages in a specific group
+- Added account.setAuthorizationTTL - Set time-to-live of current session
+- Added account.changeAuthorizationSettings - Change authorization settings
+- Added channels.deleteParticipantHistory - Delete all messages sent by a specific participant of a given supergroup
+
+Changed Methods
+
+- Changed type of auth.logOut from Bool to auth.LoggedOut
+- Changed type of users.getFullUser from UserFull to users.UserFull
+- Added noforwards, send_as parameters in messages.sendMessage
+- Added noforwards, send_as parameters in messages.sendMedia
+- Added noforwards, send_as parameters in messages.forwardMessages
+- Changed type of messages.getPeerSettings from PeerSettings to messages.PeerSettings
+- Added hash parameter in messages.getStickerSet
+- Added participant parameter, removed user_id parameter in channels.reportSpam
+- Added send_as parameter in messages.sendInlineBotResult
+- Added noforwards, send_as parameters in messages.sendMultiMedia
+
+Deleted Methods
+
+- Removed channels.deleteUserHistory
+
+New Constructors
+
+- Added inputKeyboardButtonUserProfile - Button that links directly to a user profile
+- Added keyboardButtonUserProfile - Button that links directly to a user profile
+- Added channels.sendAsPeers - A list of peers that can be used to send messages in a specific group
+- Added channelAdminLogEventActionToggleNoForwards - Forwards were enabled or disabled
+- Added messages.stickerSetNotModified - The stickerset hasn't changed
+- Added users.userFull - Full user information
+- Added messages.peerSettings - Peer settings
+- Added channelAdminLogEventActionSendMessage - A message was posted in a channel
+- Added auth.codeTypeMissedCall - The next time, the authentication code will be delivered via an immediately canceled incoming call, handled manually by the user.
+- Added auth.sentCodeTypeMissedCall - The code will be sent via a flash phone call, that will be closed immediately. The last digits of the phone number that calls are the code that must be entered manually by the user.
+- Added auth.loggedOut - Future auth token » to be used on subsequent authorizations
+
+Changed Constructors
+
+- Added noforwards parameter in chat
+- Added noforwards parameter in message
+- Added setup_password_required, otherwise_relogin_days parameters in auth.authorization
+- Added request_chat_broadcast, request_chat_title, request_chat_date parameters in peerSettings
+- Added id, private_forward_name parameters, removed user parameter in userFull
+- Added encrypted_requests_disabled, call_requests_disabled parameters in authorization
+- Added authorization_ttl_days parameter in account.authorizations
+- Added noforwards parameter in channel
+- Added default_send_as parameter in channelFull
+- Added allow_missed_call, logout_tokens parameters in codeSettings
+
+Schema
+chat#41cbf256 flags:# creator:flags.0?true kicked:flags.1?true left:flags.2?true deactivated:flags.5?true call_active:flags.23?true call_not_empty:flags.24?true noforwards:flags.25?true id:long title:string photo:ChatPhoto participants_count:int date:int version:int migrated_to:flags.6?InputChannel admin_rights:flags.14?ChatAdminRights default_banned_rights:flags.18?ChatBannedRights = Chat;
+message#85d6cbe2 flags:# out:flags.1?true mentioned:flags.4?true media_unread:flags.5?true silent:flags.13?true post:flags.14?true from_scheduled:flags.18?true legacy:flags.19?true edit_hide:flags.21?true pinned:flags.24?true noforwards:flags.26?true id:int from_id:flags.8?Peer peer_id:Peer fwd_from:flags.2?MessageFwdHeader via_bot_id:flags.11?long reply_to:flags.3?MessageReplyHeader date:int message:string media:flags.9?MessageMedia reply_markup:flags.6?ReplyMarkup entities:flags.7?Vector<MessageEntity> views:flags.10?int forwards:flags.10?int replies:flags.23?MessageReplies edit_date:flags.15?int post_author:flags.16?string grouped_id:flags.17?long restriction_reason:flags.22?Vector<RestrictionReason> ttl_period:flags.25?int = Message;
+auth.authorization#33fb7bb8 flags:# setup_password_required:flags.1?true otherwise_relogin_days:flags.1?int tmp_sessions:flags.0?int user:User = auth.Authorization;
+peerSettings#a518110d flags:# report_spam:flags.0?true add_contact:flags.1?true block_contact:flags.2?true share_contact:flags.3?true need_contacts_exception:flags.4?true report_geo:flags.5?true autoarchived:flags.7?true invite_members:flags.8?true request_chat_broadcast:flags.10?true geo_distance:flags.6?int request_chat_title:flags.9?string request_chat_date:flags.9?int = PeerSettings;
+userFull#cf366521 flags:# blocked:flags.0?true phone_calls_available:flags.4?true phone_calls_private:flags.5?true can_pin_message:flags.7?true has_scheduled:flags.12?true video_calls_available:flags.13?true id:long about:flags.1?string settings:PeerSettings profile_photo:flags.2?Photo notify_settings:PeerNotifySettings bot_info:flags.3?BotInfo pinned_msg_id:flags.6?int common_chats_count:int folder_id:flags.11?int ttl_period:flags.14?int theme_emoticon:flags.15?string private_forward_name:flags.16?string = UserFull;
+authorization#ad01d61d flags:# current:flags.0?true official_app:flags.1?true password_pending:flags.2?true encrypted_requests_disabled:flags.3?true call_requests_disabled:flags.4?true hash:long device_model:string platform:string system_version:string api_id:int app_name:string app_version:string date_created:int date_active:int ip:string country:string region:string = Authorization;
+account.authorizations#4bff8ea0 authorization_ttl_days:int authorizations:Vector<Authorization> = account.Authorizations;
+channel#8261ac61 flags:# creator:flags.0?true left:flags.2?true broadcast:flags.5?true verified:flags.7?true megagroup:flags.8?true restricted:flags.9?true signatures:flags.11?true min:flags.12?true scam:flags.19?true has_link:flags.20?true has_geo:flags.21?true slowmode_enabled:flags.22?true call_active:flags.23?true call_not_empty:flags.24?true fake:flags.25?true gigagroup:flags.26?true noforwards:flags.27?true id:long access_hash:flags.13?long title:string username:flags.6?string photo:ChatPhoto date:int restriction_reason:flags.9?Vector<RestrictionReason> admin_rights:flags.14?ChatAdminRights banned_rights:flags.15?ChatBannedRights default_banned_rights:flags.18?ChatBannedRights participants_count:flags.17?int = Chat;
+channelFull#56662e2e flags:# can_view_participants:flags.3?true can_set_username:flags.6?true can_set_stickers:flags.7?true hidden_prehistory:flags.10?true can_set_location:flags.16?true has_scheduled:flags.19?true can_view_stats:flags.20?true blocked:flags.22?true id:long about:string participants_count:flags.0?int admins_count:flags.1?int kicked_count:flags.2?int banned_count:flags.2?int online_count:flags.13?int read_inbox_max_id:int read_outbox_max_id:int unread_count:int chat_photo:Photo notify_settings:PeerNotifySettings exported_invite:flags.23?ExportedChatInvite bot_info:Vector<BotInfo> migrated_from_chat_id:flags.4?long migrated_from_max_id:flags.4?int pinned_msg_id:flags.5?int stickerset:flags.8?StickerSet available_min_id:flags.9?int folder_id:flags.11?int linked_chat_id:flags.14?long location:flags.15?ChannelLocation slowmode_seconds:flags.17?int slowmode_next_send_date:flags.18?int stats_dc:flags.12?int pts:int call:flags.21?InputGroupCall ttl_period:flags.24?int pending_suggestions:flags.25?Vector<string> groupcall_default_join_as:flags.26?Peer theme_emoticon:flags.27?string requests_pending:flags.28?int recent_requesters:flags.28?Vector<long> default_send_as:flags.29?Peer = ChatFull;
+codeSettings#8a6469c2 flags:# allow_flashcall:flags.0?true current_number:flags.1?true allow_app_hash:flags.4?true allow_missed_call:flags.5?true logout_tokens:flags.6?Vector<bytes> = CodeSettings;
+inputKeyboardButtonUserProfile#e988037b text:string user_id:InputUser = KeyboardButton;
+keyboardButtonUserProfile#308660c1 text:string user_id:long = KeyboardButton;
+channels.sendAsPeers#8356cda9 peers:Vector<Peer> chats:Vector<Chat> users:Vector<User> = channels.SendAsPeers;
+channelAdminLogEventActionToggleNoForwards#cb2ac766 new_value:Bool = ChannelAdminLogEventAction;
+messages.stickerSetNotModified#d3f924eb = messages.StickerSet;
+users.userFull#3b6d152e full_user:UserFull chats:Vector<Chat> users:Vector<User> = users.UserFull;
+messages.peerSettings#6880b94d settings:PeerSettings chats:Vector<Chat> users:Vector<User> = messages.PeerSettings;
+channelAdminLogEventActionSendMessage#278f2868 message:Message = ChannelAdminLogEventAction;
+auth.codeTypeMissedCall#d61ad6ee = auth.CodeType;
+auth.sentCodeTypeMissedCall#82006484 prefix:string length:int = auth.SentCodeType;
+auth.loggedOut#c3a2835f flags:# future_auth_token:flags.0?bytes = auth.LoggedOut;
+---functions---
+auth.logOut#3e72ba19 = auth.LoggedOut;
+users.getFullUser#b60f5918 id:InputUser = users.UserFull;
+messages.sendMessage#0d9d75a4 flags:# no_webpage:flags.1?true silent:flags.5?true background:flags.6?true clear_draft:flags.7?true noforwards:flags.14?true peer:InputPeer reply_to_msg_id:flags.0?int message:string random_id:long reply_markup:flags.2?ReplyMarkup entities:flags.3?Vector<MessageEntity> schedule_date:flags.10?int send_as:flags.13?InputPeer = Updates;
+messages.sendMedia#e25ff8e0 flags:# silent:flags.5?true background:flags.6?true clear_draft:flags.7?true noforwards:flags.14?true peer:InputPeer reply_to_msg_id:flags.0?int media:InputMedia message:string random_id:long reply_markup:flags.2?ReplyMarkup entities:flags.3?Vector<MessageEntity> schedule_date:flags.10?int send_as:flags.13?InputPeer = Updates;
+messages.forwardMessages#cc30290b flags:# silent:flags.5?true background:flags.6?true with_my_score:flags.8?true drop_author:flags.11?true drop_media_captions:flags.12?true noforwards:flags.14?true from_peer:InputPeer id:Vector<int> random_id:Vector<long> to_peer:InputPeer schedule_date:flags.10?int send_as:flags.13?InputPeer = Updates;
+messages.getPeerSettings#efd9a6a2 peer:InputPeer = messages.PeerSettings;
+messages.getStickerSet#c8a0ec74 stickerset:InputStickerSet hash:int = messages.StickerSet;
+channels.reportSpam#f44a8315 channel:InputChannel participant:InputPeer id:Vector<int> = Bool;
+messages.sendInlineBotResult#7aa11297 flags:# silent:flags.5?true background:flags.6?true clear_draft:flags.7?true hide_via:flags.11?true peer:InputPeer reply_to_msg_id:flags.0?int random_id:long query_id:long id:string schedule_date:flags.10?int send_as:flags.13?InputPeer = Updates;
+messages.sendMultiMedia#f803138f flags:# silent:flags.5?true background:flags.6?true clear_draft:flags.7?true noforwards:flags.14?true peer:InputPeer reply_to_msg_id:flags.0?int multi_media:Vector<InputSingleMedia> schedule_date:flags.10?int send_as:flags.13?InputPeer = Updates;
+messages.hideAllChatJoinRequests#e085f4ea flags:# approved:flags.0?true peer:InputPeer link:flags.1?string = Updates;
+messages.toggleNoForwards#b11eafa2 peer:InputPeer enabled:Bool = Updates;
+messages.saveDefaultSendAs#ccfddf96 peer:InputPeer send_as:InputPeer = Bool;
+channels.getSendAs#0dc770ee peer:InputPeer = channels.SendAsPeers;
+account.setAuthorizationTTL#bf899aa0 authorization_ttl_days:int = Bool;
+account.changeAuthorizationSettings#40f48462 flags:# hash:long encrypted_requests_disabled:flags.0?Bool call_requests_disabled:flags.1?Bool = Bool;
+channels.deleteParticipantHistory#367544db channel:InputChannel participant:InputPeer = messages.AffectedHistory;
+Layer 134
+Join requests, delete by date, global chat themes, hyper-speed scrolling and calendar view for shared media, sponsored channel posts.
+Schema changes
+New Methods
+
+- Added messages.getSearchResultsCalendar - Returns information about the next messages of the specified type in the chat split by days.
+- Added messages.getSearchResultsPositions - Returns sparse positions of messages of the specified type in the chat to be used for shared media scroll implementation.
+- Added messages.hideChatJoinRequest - Dismiss or approve a chat join request related to a specific chat or channel.
+
+Changed Methods
+
+- Added min_date, max_date parameters in messages.deleteHistory
+- Added request_needed, title parameters in messages.exportChatInvite
+- Changed type of settings from flags.3?InputThemeSettings to flags.3?Vector<InputThemeSettings> in account.createTheme
+- Changed type of settings from flags.3?InputThemeSettings to flags.3?Vector<InputThemeSettings> in account.updateTheme
+- Added base_theme parameter, changed type of format from flags.1?string to flags.2?string in account.installTheme
+- Added request_needed, title parameters in messages.editExportedChatInvite
+- Added flags, requested, q parameters, changed type of link from string to flags.1?string in messages.getChatInviteImporters
+- Changed type of account.getChatThemes from account.ChatThemes to account.Themes
+- Changed type of hash from int to long in account.getChatThemes
+
+New Constructors
+
+- Added searchResultsCalendarPeriod - Information about found messages sent on a specific day, used to split the
messages
in messages.searchResultsCalendar constructors by days.
+- Added messages.searchResultsCalendar - Information about found messages sent on a specific day
+- Added searchResultPosition - Information about a message in a specific position
+- Added messages.searchResultsPositions - Information about sparse positions of messages
+- Added messageActionChatJoinedByRequest - A user was accepted into the group by an admin
+- Added updatePendingJoinRequests - Someone has requested to join a chat or channel
+- Added updateBotChatInviteRequester - Someone has requested to join a chat or channel (bots only, users will receive an updatePendingJoinRequests, instead)
+- Added channelAdminLogEventActionParticipantJoinByRequest - A new member was accepted to the chat by an admin
+
+Changed Constructors
+
+- Added requests_pending, recent_requesters parameters in chatFull
+- Added request_needed, requested, title parameters in chatInviteExported
+- Added request_needed, about parameters in chatInvite
+- Added requests_pending, recent_requesters parameters in channelFull
+- Added flags, via_request parameters in channelParticipantSelf
+- Added send parameter in channelAdminLogEventsFilter
+- Added emoticon parameter, changed type of settings from flags.3?ThemeSettings to flags.3?Vector<ThemeSettings> in theme
+- Added flags, requested, about, approved_by parameters in chatInviteImporter
+- Added channel_post parameter in sponsoredMessage
+
+Deleted Constructors
+
+- Removed chatTheme
+- Removed account.chatThemesNotModified
+- Removed account.chatThemes
+
+PUSH notification changes
+New PUSH notifications
+
+- Added CHAT_REQ_JOINED -
{2}|{1} was accepted into the group
+
+Schema
+chatFull#46a6ffb4 flags:# can_set_username:flags.7?true has_scheduled:flags.8?true id:long about:string participants:ChatParticipants chat_photo:flags.2?Photo notify_settings:PeerNotifySettings exported_invite:flags.13?ExportedChatInvite bot_info:flags.3?Vector<BotInfo> pinned_msg_id:flags.6?int folder_id:flags.11?int call:flags.12?InputGroupCall ttl_period:flags.14?int groupcall_default_join_as:flags.15?Peer theme_emoticon:flags.16?string requests_pending:flags.17?int recent_requesters:flags.17?Vector<long> = ChatFull;
+chatInviteExported#0ab4a819 flags:# revoked:flags.0?true permanent:flags.5?true request_needed:flags.6?true link:string admin_id:long date:int start_date:flags.4?int expire_date:flags.1?int usage_limit:flags.2?int usage:flags.3?int requested:flags.7?int title:flags.8?string = ExportedChatInvite;
+chatInvite#300c44c1 flags:# channel:flags.0?true broadcast:flags.1?true public:flags.2?true megagroup:flags.3?true request_needed:flags.6?true title:string about:flags.5?string photo:Photo participants_count:int participants:flags.4?Vector<User> = ChatInvite;
+channelFull#59cff963 flags:# can_view_participants:flags.3?true can_set_username:flags.6?true can_set_stickers:flags.7?true hidden_prehistory:flags.10?true can_set_location:flags.16?true has_scheduled:flags.19?true can_view_stats:flags.20?true blocked:flags.22?true id:long about:string participants_count:flags.0?int admins_count:flags.1?int kicked_count:flags.2?int banned_count:flags.2?int online_count:flags.13?int read_inbox_max_id:int read_outbox_max_id:int unread_count:int chat_photo:Photo notify_settings:PeerNotifySettings exported_invite:flags.23?ExportedChatInvite bot_info:Vector<BotInfo> migrated_from_chat_id:flags.4?long migrated_from_max_id:flags.4?int pinned_msg_id:flags.5?int stickerset:flags.8?StickerSet available_min_id:flags.9?int folder_id:flags.11?int linked_chat_id:flags.14?long location:flags.15?ChannelLocation slowmode_seconds:flags.17?int slowmode_next_send_date:flags.18?int stats_dc:flags.12?int pts:int call:flags.21?InputGroupCall ttl_period:flags.24?int pending_suggestions:flags.25?Vector<string> groupcall_default_join_as:flags.26?Peer theme_emoticon:flags.27?string requests_pending:flags.28?int recent_requesters:flags.28?Vector<long> = ChatFull;
+channelParticipantSelf#35a8bfa7 flags:# via_request:flags.0?true user_id:long inviter_id:long date:int = ChannelParticipant;
+channelAdminLogEventsFilter#ea107ae4 flags:# join:flags.0?true leave:flags.1?true invite:flags.2?true ban:flags.3?true unban:flags.4?true kick:flags.5?true unkick:flags.6?true promote:flags.7?true demote:flags.8?true info:flags.9?true settings:flags.10?true pinned:flags.11?true edit:flags.12?true delete:flags.13?true group_call:flags.14?true invites:flags.15?true send:flags.16?true = ChannelAdminLogEventsFilter;
+theme#a00e67d6 flags:# creator:flags.0?true default:flags.1?true for_chat:flags.5?true id:long access_hash:long slug:string title:string document:flags.2?Document settings:flags.3?Vector<ThemeSettings> emoticon:flags.6?string installs_count:flags.4?int = Theme;
+chatInviteImporter#8c5adfd9 flags:# requested:flags.0?true user_id:long date:int about:flags.2?string approved_by:flags.1?long = ChatInviteImporter;
+sponsoredMessage#d151e19a flags:# random_id:bytes from_id:Peer channel_post:flags.2?int start_param:flags.0?string message:string entities:flags.1?Vector<MessageEntity> = SponsoredMessage;
+searchResultsCalendarPeriod#c9b0539f date:int min_msg_id:int max_msg_id:int count:int = SearchResultsCalendarPeriod;
+messages.searchResultsCalendar#147ee23c flags:# inexact:flags.0?true count:int min_date:int min_msg_id:int offset_id_offset:flags.1?int periods:Vector<SearchResultsCalendarPeriod> messages:Vector<Message> chats:Vector<Chat> users:Vector<User> = messages.SearchResultsCalendar;
+searchResultPosition#7f648b67 msg_id:int date:int offset:int = SearchResultsPosition;
+messages.searchResultsPositions#53b22baf count:int positions:Vector<SearchResultsPosition> = messages.SearchResultsPositions;
+messageActionChatJoinedByRequest#ebbca3cb = MessageAction;
+updatePendingJoinRequests#7063c3db peer:Peer requests_pending:int recent_requesters:Vector<long> = Update;
+updateBotChatInviteRequester#11dfa986 peer:Peer date:int user_id:long about:string invite:ExportedChatInvite qts:int = Update;
+channelAdminLogEventActionParticipantJoinByRequest#afb6144a invite:ExportedChatInvite approved_by:long = ChannelAdminLogEventAction;
+---functions---
+messages.deleteHistory#b08f922a flags:# just_clear:flags.0?true revoke:flags.1?true peer:InputPeer max_id:int min_date:flags.2?int max_date:flags.3?int = messages.AffectedHistory;
+messages.exportChatInvite#a02ce5d5 flags:# legacy_revoke_permanent:flags.2?true request_needed:flags.3?true peer:InputPeer expire_date:flags.0?int usage_limit:flags.1?int title:flags.4?string = ExportedChatInvite;
+account.createTheme#652e4400 flags:# slug:string title:string document:flags.2?InputDocument settings:flags.3?Vector<InputThemeSettings> = Theme;
+account.updateTheme#2bf40ccc flags:# format:string theme:InputTheme slug:flags.0?string title:flags.1?string document:flags.2?InputDocument settings:flags.3?Vector<InputThemeSettings> = Theme;
+account.installTheme#c727bb3b flags:# dark:flags.0?true theme:flags.1?InputTheme format:flags.2?string base_theme:flags.3?BaseTheme = Bool;
+messages.editExportedChatInvite#bdca2f75 flags:# revoked:flags.2?true peer:InputPeer link:string expire_date:flags.0?int usage_limit:flags.1?int request_needed:flags.3?Bool title:flags.4?string = messages.ExportedChatInvite;
+messages.getChatInviteImporters#df04dd4e flags:# requested:flags.0?true peer:InputPeer link:flags.1?string q:flags.2?string offset_date:int offset_user:InputUser limit:int = messages.ChatInviteImporters;
+account.getChatThemes#d638de89 hash:long = account.Themes;
+messages.getSearchResultsCalendar#49f0bde9 peer:InputPeer filter:MessagesFilter offset_id:int offset_date:int = messages.SearchResultsCalendar;
+messages.getSearchResultsPositions#6e9583a3 peer:InputPeer filter:MessagesFilter offset_id:int limit:int = messages.SearchResultsPositions;
+messages.hideChatJoinRequest#7fe7e815 flags:# approved:flags.0?true peer:InputPeer user_id:InputUser = Updates;
+End-to-end schema changes
+New Constructors
+
+- Added messageEntityUnderline - Message entity representing underlined text.
+- Added messageEntityStrike - Message entity representing
strikethrough text.
+- Added messageEntityBlockquote - Message entity representing a block quote.
+
+End-to-end schema
+===101===
+messageEntityUnderline#9c4e7e8b offset:int length:int = MessageEntity;
+messageEntityStrike#bf0693d4 offset:int length:int = MessageEntity;
+messageEntityBlockquote#020df5d0 offset:int length:int = MessageEntity;
+Layer 133
+Group message receipts, animated emoji reactions » and switch to 64-bit identifiers for users, groups, supergroups and channels.
+Over 160 constructors and methods were changed, changing parameter types from int to long, including user, chat and channel: the full changelog is elided for space reasons.
+You can visit the schema for an updated list of constructors.
+Also note that the hashing algorithm for pagination was also changed to account for 64-bit IDs.
+All layers 1-132 are deprecated due to impossible backwards compatibility between 32-bit and 64-bit IDs.
+Changes
+
+- Added messages.getMessageReadParticipants - Get which users read a specific message
+- Added inputStickerSetAnimatedEmojiAnimations - Animated emoji reaction stickerset (contains animations to play when a user clicks on a given animated emoji)
+- Added sendMessageEmojiInteraction - User has clicked on an animated emoji triggering a reaction, click here for more info ».
+- Added sendMessageEmojiInteractionSeen - User is watching an animated emoji reaction triggered by another user, click here for more info ».
+- Added inputBotInlineMessageID64 - Represents a sent inline message from the perspective of a bot
+
diff --git a/data/web/corefork.telegram.org/api/links.html b/data/web/corefork.telegram.org/api/links.html
index 02dcaa0ee1..0c097d51a7 100644
--- a/data/web/corefork.telegram.org/api/links.html
+++ b/data/web/corefork.telegram.org/api/links.html
@@ -59,17 +59,7 @@
tg://path?query
The #fragment
part is always ignored when parsing Telegram deep links.
-Also note that whenever a <username>.t.me
link is encountered and <username>
:
-
-- Is not equal to:
-www
-- Any of the values specified in this list ».
-
-
-- AND is not a single letter
-- AND is a valid username
-
-...it should be treated exactly as a t.me/<username>/
link (generate a t.me/<username>/
link and append the rest of the path (if present) and the query string (if present)).
+Also note that whenever a <username>.t.me
link is encountered and <username>
is not equal to www
, is not a single letter and is a valid username, it should be treated exactly as a t.me/<username>/
link (generate a t.me/<username>/
link and append the rest of the path (if present) and the query string (if present)).
Public username links
Used to link to public users, groups and channels, see here for more info on how to handle them ».
t.me
syntax:
@@ -291,7 +281,7 @@ t.me/share?url=<url>&text=<text>
-Video chat/Livestream links
+Video chat/Livestream links
Used to join video/voice chats in groups, and livestreams in channels.
Such links are generated using phone.exportGroupCallInvite.
Note that voicechat
links are deprecated, the API will always export videochat
links for video and voice chats in groups, clients should support parsing the old link format only for backwards compatibility.
@@ -374,69 +364,6 @@ tg://addemoji?set=<slug>
-Story links
-Used to link to a Telegram Story », generated using the procedure specified here ».
-t.me
syntax:
-t.me/<username>/s/<story_id>
-tg:
syntax:
-tg://resolve?domain=<username>&story=<story_id>
-Parameters:
-
-
-
-Name
-Optional
-Description
-
-
-
-
-username
-Required
-Username of the user or channel that posted the story.
-
-
-story_id
-Required
-ID of the Telegram Story to be fetched and viewed as described here ».
-
-
-
-Boost links
-Used by users to boost channels », granting them the ability to post stories and further perks.
-Use the channel information to boost the channel as described here ».
-t.me
syntax (public channels):
-t.me/boost/<username>
-t.me/<username>?boost
-t.me
syntax (private channels):
-t.me/boost?c=<id>
-t.me/c/<id>?boost
-tg:
syntax (public channels):
-tg://boost?domain=<username>
-tg:
syntax (private channels):
-tg://boost?channel=<id>
-Parameters:
-
-
-
-Name
-Optional
-Description
-
-
-
-
-username
-Required for public links
-Channel username.
-
-
-channel
-Required for private links
-Channel ID.
-
-
-
Proxy links
Used to share a proxy server that can be used to connect to Telegram.
MTProxy links
@@ -824,11 +751,11 @@ tg://bg?slug=<slug>&intensity=<intensity>&bg_color=<hex_c
parameter
Optional
-Start parameter, up to 64 base64url characters: if provided and the bot_username
is indeed a bot, the text input bar should be replaced with a Start
button (even if the user has already started the bot) that should invoke messages.startBot with the appropriate parameter
once clicked. Note that if the bot_username
is equal to the premium_bot_username
configuration value », clicking on this link should immediately invoke messages.startBot with the appropriate parameter
.
+Start parameter, up to 64 base64url characters: if provided and the bot_username
is indeed a bot, the text input bar should be replaced with a Start
button (even if the user has already started the bot) that should invoke messages.startBot with the appropriate parameter
once clicked.
-Group/channel bot links
+Group/channel bot links
Used to add bots to groups or channels.
First of all, check that the <bot_username>
indeed links to a bot.
Then, for group links:
@@ -886,7 +813,7 @@ tg://resolve?domain=<bot_username>&startgroup&admin=<permission
admin
Optional for group links, required for channel links
-A combination of the following identifiers separated by +
, each corresponding to the appropriate flag in the chatAdminRights » constructor:
- change_info
- chatAdminRights.change_info
- post_messages
- chatAdminRights.post_messages
- edit_messages
- chatAdminRights.edit_messages
- delete_messages
- chatAdminRights.delete_messages
- restrict_members
- chatAdminRights.ban_users
- invite_users
- chatAdminRights.invite_users
- pin_messages
- chatAdminRights.pin_messages
- manage_topics
- chatAdminRights.manage_topics
- promote_members
- chatAdminRights.add_admins
- manage_video_chats
- chatAdminRights.manage_call
- anonymous
- chatAdminRights.anonymous
- manage_chat
- chatAdminRights.other
- post_stories
- chatAdminRights.post_stories
- edit_stories
- chatAdminRights.edit_stories
- delete_stories
- chatAdminRights.delete_stories
+A combination of the following identifiers separated by +
, each corresponding to the appropriate flag in the chatAdminRights » constructor:
- change_info
- chatAdminRights.change_info
- post_messages
- chatAdminRights.post_messages
- edit_messages
- chatAdminRights.edit_messages
- delete_messages
- chatAdminRights.delete_messages
- restrict_members
- chatAdminRights.ban_users
- invite_users
- chatAdminRights.invite_users
- pin_messages
- chatAdminRights.pin_messages
- manage_topics
- chatAdminRights.manage_topics
- promote_members
- chatAdminRights.add_admins
- manage_video_chats
- chatAdminRights.manage_call
- anonymous
- chatAdminRights.anonymous
- manage_chat
- chatAdminRights.other
@@ -924,6 +851,41 @@ tg://resolve?domain=<bot_username>&startgroup&admin=<permission
+Named bot web app links
+Used to share named bot web apps.
+These links are different from bot attachment menu deep links, because they don't require the user to install an attachment menu, and a single bot can offer multiple named web apps, distinguished by their short_name
.
+These links should be handled as specified in the named bot web app documentation ».
+t.me
syntax:
+t.me/<bot_username>/<short_name>?startapp=<start_parameter>
+tg:
syntax:
+tg://resolve?domain=<bot_username>&appname=<short_name>&startapp=<start_parameter>
+Parameters:
+
+
+
+Name
+Optional
+Description
+
+
+
+
+bot_username
+Required
+Username of the bot that owns the game
+
+
+appname
+Required
+Web app short name, to pass to inputBotAppShortName.short_name
when invoking messages.getBotApp
+
+
+startapp
+Optional
+start_param
to pass to messages.requestAppWebView
+
+
+
Settings links
Settings link
Used to bring the user to the app settings.
@@ -1074,28 +1036,6 @@ These links are used to confirm ownership of the phone number, to prevent accoun
-Premium multigift links
-Used to bring the user to the screen used for gifting Telegram Premium subscriptions to friends, see here for more info on gifting Telegram Premium to multiple users ».
-This link is used to invite users to gift Premium subscription to other users, see here » for the different link type containing the actual giftcodes that can be used to import a gifted Telegram Premium subscription.
-tg:
syntax:
-tg://premium_multigift?ref=<referrer>
-Parameters:
-
-
-
-Name
-Optional
-Description
-
-
-
-
-referrer
-Optional
-Used by official apps for analytics using help.saveAppLog.
-
-
-
Premium referrer links
Used by official apps to show the Telegram Premium subscription page.
tg:
syntax:
@@ -1117,31 +1057,8 @@ These links are used to confirm ownership of the phone number, to prevent accoun
-Premium giftcode links
-Used to process Telegram Premium giftcode links.
-tg:
syntax:
-tg://giftcode?slug=<slug>
-t.me
syntax:
-t.me/giftcode/<slug>
-Parameters:
-
-
-
-Name
-Optional
-Description
-
-
-
-
-slug
-Optional
-Gift code slug to be passed to payments.checkGiftCode to obtain further info, and eventually to payments.applyGiftCode to apply it. See the giveaways documentation for more info.
-
-
-
QR code login links
-Used by the QR code login flow ».
+Used by QR code login.
tg:
syntax:
tg://login?token=<base64encodedtoken>
Parameters:
@@ -1161,85 +1078,24 @@ These links are used to confirm ownership of the phone number, to prevent accoun
-Mini App links
-Used to install and open a bot attachment or side menu ».
-Clients should first install the associated bot attachment or side menu entry as specified here », and if the user accepts the installation prompt, open the Mini App using the following logic.
-After installing the attachment/side menu entry globally, opens the associated mini app using messages.requestSimpleWebView with the from_side_menu
flag set, regardless of the currently open Telegram chat (in fact, the Mini App should opened with that flag even if the client itself is minimized).
-t.me
syntax:
-t.me/<bot_username>?startapp
-t.me/<bot_username>?startapp=<start_parameter>
-Note that Direct Mini App links have a similar syntax, with an additional short_name
parameter to identify a specific Mini App owned by the bot.
-tg:
syntax:
-tg://resolve?domain=<bot_username>&startapp
-tg://resolve?domain=<bot_username>&startapp=<start_parameter>
-Parameters:
-
-
-
-Name
-Optional
-Description
-
-
-
-
-bot_username
-Required
-Username of the bot that owns the attachment/side menu entry
-
-
-start_parameter
-Optional
-If provided, should be passed to messages.requestSimpleWebView.start_param
-
-
-
-Direct mini app links
-Used to share Direct link Mini apps.
-These links are different from bot attachment menu deep links, because they don't require the user to install an attachment menu, and a single bot can offer multiple named mini apps, distinguished by their short_name
.
-These links should be handled as specified in the direct link Mini Apps documentation ».
-t.me
syntax:
-t.me/<bot_username>/<short_name>?startapp=<start_parameter>
-tg:
syntax:
-tg://resolve?domain=<bot_username>&appname=<short_name>&startapp=<start_parameter>
-Note that Mini App links have a similar syntax, without a short_name
parameter.
-Parameters:
-
-
-
-Name
-Optional
-Description
-
-
-
-
-bot_username
-Required
-Username of the bot that owns the game
-
-
-appname
-Required
-Mini app short name, to pass to inputBotAppShortName.short_name
when invoking messages.getBotApp
-
-
-startapp
-Optional
-start_param
to pass to messages.requestAppWebView
-
-
-
-Bot attachment or side menu links
-Used to install and open a bot attachment or side menu » in a certain chat.
-For all link types, clients should first install the associated bot attachment or side menu entry as specified here », and if the user accepts the installation prompt, open the Mini App using the following logic, depending on the link subtype:
-Open in current chat
-After installing the attachment/side menu entry globally, opens the associated mini app using messages.requestWebView in the currently open chat, by passing it to the peer
parameter of messages.requestWebView.
-If the current chat is not supported by the attachMenuBot.peer_types
field:
+Bot attachment menu links
+Used to install and optionally open a bot attachment menu » in a certain chat.
+For all link types, clients should:
-- If the user has just installed the attachment menu in the previous step, notify the user that the attachment menu was installed successfully.
+- Check that the associated bot username has an associated attachment menu as specified here ».
+- If not installed, ask the user to install the attachment menu ».
+- Check that the attachment menu can be opened in the chosen chat type by checking the attachMenuBot.
peer_types
field.
+- If the chosen chat is supported, open the attachment menu web app »
+- Otherwise:
+- If the user has just installed the attachment menu @ step 2, notify the user that the attachment menu was installed successfully.
- Otherwise, notify the user that the attachment menu webapp can't be opened in the specified chat.
+
+
+
+
+Open in current chat
+Installs and opens an attachment menu web app in the currently open chat.
t.me
syntax:
t.me/<bot_username>?startattach
t.me/<bot_username>?startattach=<start_parameter>
@@ -1259,7 +1115,7 @@ tg://resolve?domain=<bot_username>&startattach=<start_parameter>
bot_username
Required
-Username of the bot that owns the attachment/side menu entry
+Username of the bot that owns the attachment menu
start_parameter
@@ -1269,7 +1125,7 @@ tg://resolve?domain=<bot_username>&startattach=<start_parameter>
Open in specific chat
-After installing the attachment/side menu entry globally, opens the associated mini app using messages.requestWebView in a specific chat (passed to the peer
parameter of messages.requestWebView).
+Installs and opens an attachment menu web app in a specific chat.
t.me
syntax:
t.me/<username>?attach=<bot_username>
t.me/<username>?attach=<bot_username>&startattach=<start_parameter>
@@ -1280,11 +1136,6 @@ t.me/+<phone_number>?attach=<bot_username>&startattach=<start
tg://resolve?domain=<username>&attach=<bot_username>&startattach=<start_parameter>
tg://resolve?phone=<phone_number>&attach=<bot_username>
tg://resolve?phone=<phone_number>&attach=<bot_username>&startattach=<start_parameter>
-If the specified chat is not supported by the attachMenuBot.peer_types
field:
-
-- If the user has just installed the attachment menu in the previous step, notify the user that the attachment menu was installed successfully.
-- Otherwise, notify the user that the attachment menu webapp can't be opened in the specified chat.
-
Parameters:
@@ -1298,17 +1149,17 @@ tg://resolve?phone=<phone_number>&attach=<bot_username>&star
username
Required for username links
-Username of chat where to open the mini app
+Username of chat where to open web app
phone_number
Required for phone number links
-Phone number of private chat where to the open mini app
+Phone number of private chat where to open web app
bot_username
Required
-Username of the bot that owns the attachment/side menu
+Username of the bot that owns the attachment menu
start_parameter
@@ -1318,7 +1169,7 @@ tg://resolve?phone=<phone_number>&attach=<bot_username>&star
Open in any chat
-After installing the attachment/side menu entry globally, opens a dialog selection form that will open the attachment menu mini app using messages.requestWebView in a specific chat (passed it to the peer
parameter of messages.requestWebView).
+Installs an attachment menu, opens a dialog selection form that will open the attachment menu web app in a specific chat.
t.me
syntax:
t.me/<bot_username>?startattach&choose=users+bots+groups+channels
t.me/<bot_username>?startattach=<start_parameter>&choose=users+bots+groups+channels
@@ -1338,7 +1189,7 @@ tg://resolve?domain=<bot_username>&startattach=<start_parameter>
bot_username
Required
-Username of the bot that owns the attachment/side menu
+Username of the bot that owns the attachment menu
start_parameter
diff --git a/data/web/corefork.telegram.org/api/push-updates.html b/data/web/corefork.telegram.org/api/push-updates.html
index ff648bd573..af40d1b42c 100644
--- a/data/web/corefork.telegram.org/api/push-updates.html
+++ b/data/web/corefork.telegram.org/api/push-updates.html
@@ -64,7 +64,6 @@ Simple push works by sending a simple PUT request with a version=number10
- Web push (web push, see below)
11
- MPNS VoIP (token for microsoft push VoIP)
12
- Tizen (token for tizen push)
-13
- Huawei push
For 10
web push, the token must be a JSON-encoded object with the following keys:
@@ -250,11 +249,6 @@ Simple push works by sending a simple PUT request with a version=number1. Channel name
-CHANNEL_MESSAGE_GIVEAWAY
-{1} posted a giveaway of {2}x {3}m Premium subscriptions
-1. Channel name
2. Number of Telegram Premium subscriptions in the giveaway
3. Duration in months of each Telegram Premium subscription in the giveaway
-
-
CHANNEL_MESSAGE_NOTEXT
{1} posted a message
1. Channel name
@@ -295,11 +289,6 @@ Simple push works by sending a simple PUT request with a version=number1. Channel name
2. Sticker emoji
-CHANNEL_MESSAGE_STORY
-{1} shared a story
-1. Channel name
-
-
CHANNEL_MESSAGE_TEXT
{1}: {2}
1. Channel name
2. Message body
@@ -405,11 +394,6 @@ Simple push works by sending a simple PUT request with a version=number1. User name
2. Group name
-CHAT_MESSAGE_GIVEAWAY
-{1} sent a giveaway of {3}x {4}m Premium subscriptions to the group {2}
-1. User name
2. Group name
3. Number of Telegram Premium subscriptions in the giveaway
4. Duration in months of each Telegram Premium subscription in the giveaway
-
-
CHAT_MESSAGE_INVOICE
{1} sent an invoice to the group {2} for {3}
1. User name
2. Group name
3. Product name
@@ -455,11 +439,6 @@ Simple push works by sending a simple PUT request with a version=number1. User name
2. Group name
3. Sticker emoji
-CHAT_MESSAGE_STORY
-{1} shared a story to the group
-1. Group name
-
-
CHAT_MESSAGE_TEXT
{1} @ {2}: {3}
1. Message author
2. Chat name
3. Message body
@@ -515,11 +494,6 @@ Simple push works by sending a simple PUT request with a version=number1. User name
2. Group name
3. Reaction
-CHAT_REACT_GIVEAWAY
-{1} reacted {3} in group {2} to your giveaway
-1. User name
2. Group name
3. Reaction
-
-
CHAT_REACT_INVOICE
{1}: {3} to your invoice in {2}
1. User name
2. Group name
3. Reaction
@@ -680,16 +654,6 @@ Simple push works by sending a simple PUT request with a version=number1. User name
-MESSAGE_GIFTCODE
-{1} sent you a Gift Code for {2} of Telegram Premium
-1. User name
2. Duration of Telegram Premium subscription
-
-
-MESSAGE_GIVEAWAY
-{1} sent you a giveaway of {2}x {3}m Premium subscriptions
-1. User name
2. Number of Telegram Premium subscriptions in the giveaway
3. Duration in months of each Telegram Premium subscription in the giveaway
-
-
MESSAGE_INVOICE
{1} sent you an invoice for {2}
1. User name
2. Product
@@ -740,11 +704,6 @@ Simple push works by sending a simple PUT request with a version=number1. User name
-MESSAGE_SAME_WALLPAPER
-{1} set a same wallpaper for this chat
-1. User name
-
-
MESSAGE_SCREENSHOT
{1} took a screenshot
1. User name
@@ -755,16 +714,6 @@ Simple push works by sending a simple PUT request with a version=number1. User name
2. Sticker emoji
-MESSAGE_STORY
-{1} shared a story with you
-1. User name
-
-
-MESSAGE_STORY_MENTION
-{1} mentioned you in a story
-1. User name
-
-
MESSAGE_TEXT
{1}: {2}
1. Message author
2. Message body
@@ -785,11 +734,6 @@ Simple push works by sending a simple PUT request with a version=number1. User name
-MESSAGE_WALLPAPER
-{1} set a new wallpaper for this chat
-1. User name
-
-
PHONE_CALL_MISSED
You missed a call from {1}
1. User name
@@ -880,16 +824,6 @@ Simple push works by sending a simple PUT request with a version=number1. User name
2. Group name
-PINNED_GIVEAWAY
-{1} pinned a giveaway
-1. User name
-
-
-PINNED_GIVEAWAY
-{1} pinned a giveaway in the group {2}
-1. User name
2. Group name
-
-
PINNED_INVOICE
{1} pinned an invoice
1. User name
@@ -1015,11 +949,6 @@ Simple push works by sending a simple PUT request with a version=number1. User name
2. Reaction
-REACT_GIVEAWAY
-{1} reacted {2} to your giveaway
-1. User name
2. Reaction
-
-
REACT_INVOICE
{1}: {2} to your invoice
1. User name
2. Reaction
@@ -1064,16 +993,6 @@ Simple push works by sending a simple PUT request with a version=number{1}: {2} to your video
1. User name
2. Reaction
-
-STORY_HIDDEN_AUTHOR
-A new story was posted (comment: emitted when previews are hidden for this peer)
-
-
-
-STORY_NOTEXT
-{1} posted a story
-1. Peer name
-
diff --git a/data/web/corefork.telegram.org/api/rights.html b/data/web/corefork.telegram.org/api/rights.html
index 57acdb16eb..f430d70ce7 100644
--- a/data/web/corefork.telegram.org/api/rights.html
+++ b/data/web/corefork.telegram.org/api/rights.html
@@ -63,7 +63,7 @@
Bots can use bots.setBotBroadcastDefaultAdminRights to indicate a suggested set of admin rights » to use when adding the bot to a channel, and bots.setBotGroupDefaultAdminRights when adding the bot to a group.
These suggested admin rights are contained in the bot_broadcast_admin_rights
and bot_group_admin_rights
paremeters of userFull, obtainable using users.getFullUser.
A client application trying to add a bot as admin should fetch the default rights and present them as editable defaults to the user: the rights can then be modified before setting the bot as admin.
-Note that admin rights suggested by a bot deep link take priority over the suggested rights specified by bot_broadcast_admin_rights
and bot_group_admin_rights
: they can still be modified by the user before setting the bot as admin.
+Note that admin rights suggested by a bot deep link take priority over the suggested rights specified by bot_broadcast_admin_rights
and bot_group_admin_rights
: they can still be modified by the user before setting the bot as admin.
diff --git a/data/web/corefork.telegram.org/api/sponsored-messages.html b/data/web/corefork.telegram.org/api/sponsored-messages.html
index 9cda04d17d..54b9ca74b0 100644
--- a/data/web/corefork.telegram.org/api/sponsored-messages.html
+++ b/data/web/corefork.telegram.org/api/sponsored-messages.html
@@ -5,11 +5,11 @@
Sponsored messages
+sponsoredWebPage#3db8ec63 flags:# url:string site_name:string photo:flags.0?Photo = SponsoredWebPage;…">
+sponsoredWebPage#3db8ec63 flags:# url:string site_name:string photo:flags.0?Photo = SponsoredWebPage;…">
@@ -45,30 +45,58 @@ sponsoredMessage#fc25b828 flags:# recommended:flags.5?true show_peer_photo:flags
Sponsored messages
Related TL schema:
-sponsoredMessage#fc25b828 flags:# recommended:flags.5?true show_peer_photo:flags.6?true random_id:bytes from_id:flags.3?Peer chat_invite:flags.4?ChatInvite chat_invite_hash:flags.4?string channel_post:flags.2?int start_param:flags.0?string message:string entities:flags.1?Vector<MessageEntity> sponsor_info:flags.7?string additional_info:flags.8?string = SponsoredMessage;
+sponsoredWebPage#3db8ec63 flags:# url:string site_name:string photo:flags.0?Photo = SponsoredWebPage;
+
+sponsoredMessage#ed5383f7 flags:# recommended:flags.5?true show_peer_photo:flags.6?true random_id:bytes from_id:flags.3?Peer chat_invite:flags.4?ChatInvite chat_invite_hash:flags.4?string channel_post:flags.2?int start_param:flags.0?string webpage:flags.9?SponsoredWebPage app:flags.10?BotApp message:string entities:flags.1?Vector<MessageEntity> button_text:flags.11?string sponsor_info:flags.7?string additional_info:flags.8?string = SponsoredMessage;
+
messages.sponsoredMessages#c9ee1d87 flags:# posts_between:flags.0?int messages:Vector<SponsoredMessage> chats:Vector<Chat> users:Vector<User> = messages.SponsoredMessages;
---functions---
channels.getSponsoredMessages#ec210fbf channel:InputChannel = messages.SponsoredMessages;
-channels.viewSponsoredMessage#beaedb94 channel:InputChannel random_id:bytes = Bool;
+channels.viewSponsoredMessage#beaedb94 channel:InputChannel random_id:bytes = Bool;
+channels.clickSponsoredMessage#18afbc93 channel:InputChannel random_id:bytes = Bool;
Getting sponsored messages
Each time the user opens a channel, channels.getSponsoredMessages
must be called to receive sponsored messages available for this channel. The result must be cached for 5 minutes.
Displaying sponsored messages
-Sponsored messages must be displayed below all other posts in the channel, after the user scrolls further down, past the last message. The promoted channel or bot specified in the from_id
or chat_invite
mutually exclusive fields must be displayed as the author of the message. The message should also contain one of the following buttons at the bottom:
+Sponsored messages must be displayed below all other posts in the channel, after the user scrolls further down, past the last message. The promoted channel or bot specified in the from_id
or chat_invite
mutually exclusive fields must be displayed as the author of the message. The message should also contain a button at the bottom with one of the following labels:
-- ==View Bot== — if a bot is being promoted. Tapping the button must open the chat with the bot. If
start_param
is specified, the app must use the deep linking mechanism to open the bot.
-- ==View Channel== — if a channel is being promoted. Tapping the button must open the channel using the
from_id
or by importing the chat_invite_hash
invitation link hash ».
-- ==View Post== — if a channel is being promoted and
channel_post
is specified. Tapping the button must open the particular channel post.
+- View Bot — if a bot is being promoted. Tapping the button must open the chat with the bot. If
start_param
is specified, the app must use the deep linking mechanism to open the bot.
+- View Channel — if a channel is being promoted. Tapping the button must open the channel using the
from_id
or by importing the chat_invite_hash
invitation link hash ».
+- View Post — if a channel is being promoted and
channel_post
is specified. Tapping the button must open the particular channel post.
+- Launch App — if the
app
flag is set, the specified Mini App should be opened when clicking on the button.
+- Open Website — If the
webpage
flag is set, clicking on the button should open the external website specified in webpage.url
.
+- The contents of the
button_text
field — if the button_text
field is set.
The message should be marked as "Recommended" instead of "Sponsored" if the recommended
flag is set.
-If the show_peer_photo
flag is set, a profile photo bubble should be displayed for this message, like for messages sent in groups. The photo shown in the bubble is obtained either from the peer contained in from_id
, or from chat_invite
.
+A profile photo bubble should be displayed for the sponsored message, like for messages sent in groups, using:
+
+app.photo
, if the app
flag is set, otherwise
+webpage.photo
, if the webpage
flag is set, otherwise
+- The profile picture of the chat in
chat_invite
, if the chat_invite
flag is set, otherwise
+webpage.photo
, if the webpage
flag is set, otherwise
+- The profile picture of the peer in
from_id
, if the show_peer_photo
flag is set.
+
+A sender name should be displayed for the sponsored message, like for messages sent in groups, using:
+
+app.title
, if the app
flag is set, otherwise
+webpage.site_name
, if the webpage
flag is set, otherwise
+- The title of the chat in
chat_invite
, if the chat_invite
flag is set.
+
If the sponsor_info
or additional_info
flags are set, an additional "Sponsor info" menu item must be present in the message context menu (the menu that pops up when clicking on a button), that when clicked, displays the contents of the flags.
Counting sponsored message views
-Once the entire text is shown on the screen (excluding the button), channels.viewSponsoredMessage
must be called with the random_id
of this sponsored message.
+Once the entire text is shown on the screen (excluding the button), channels.viewSponsoredMessage must be called with the random_id
of the sponsored message.
+Clicking on sponsored messages
+If the user either:
+
+- Clicks on a link in the sponsored message
+- Opens a sponsored chat or a sponsored website via the associated button
+- Opens the sponsored chat via the sponsored message name, the sponsored message photo, or a mention in the sponsored message
+
+channels.clickSponsoredMessage must be called with the random_id
of the sponsored message.
Testing sponsored messages
For the channel https://t.me/SecretAdTestChannel the system will always return a sponsored message: promoting either a channel, a particular message in a channel, or a bot with a start parameter.
diff --git a/data/web/corefork.telegram.org/api/stats.html b/data/web/corefork.telegram.org/api/stats.html
index 9dc30e51c0..d0ed0ce7e0 100644
--- a/data/web/corefork.telegram.org/api/stats.html
+++ b/data/web/corefork.telegram.org/api/stats.html
@@ -57,13 +57,12 @@
statsGraphError#bedc9822 error:string = StatsGraph;
statsGraph#8ea464b6 flags:# json:DataJSON zoom_token:flags.0?string = StatsGraph;
-postInteractionCountersMessage#e7058e7f msg_id:int views:int forwards:int reactions:int = PostInteractionCounters;
-postInteractionCountersStory#8a480e27 story_id:int views:int forwards:int reactions:int = PostInteractionCounters;
+messageInteractionCounters#ad4fc9bd msg_id:int views:int forwards:int = MessageInteractionCounters;
-stats.broadcastStats#396ca5fc period:StatsDateRangeDays followers:StatsAbsValueAndPrev views_per_post:StatsAbsValueAndPrev shares_per_post:StatsAbsValueAndPrev reactions_per_post:StatsAbsValueAndPrev views_per_story:StatsAbsValueAndPrev shares_per_story:StatsAbsValueAndPrev reactions_per_story:StatsAbsValueAndPrev enabled_notifications:StatsPercentValue growth_graph:StatsGraph followers_graph:StatsGraph mute_graph:StatsGraph top_hours_graph:StatsGraph interactions_graph:StatsGraph iv_interactions_graph:StatsGraph views_by_source_graph:StatsGraph new_followers_by_source_graph:StatsGraph languages_graph:StatsGraph reactions_by_emotion_graph:StatsGraph story_interactions_graph:StatsGraph story_reactions_by_emotion_graph:StatsGraph recent_posts_interactions:Vector<PostInteractionCounters> = stats.BroadcastStats;
+stats.broadcastStats#bdf78394 period:StatsDateRangeDays followers:StatsAbsValueAndPrev views_per_post:StatsAbsValueAndPrev shares_per_post:StatsAbsValueAndPrev enabled_notifications:StatsPercentValue growth_graph:StatsGraph followers_graph:StatsGraph mute_graph:StatsGraph top_hours_graph:StatsGraph interactions_graph:StatsGraph iv_interactions_graph:StatsGraph views_by_source_graph:StatsGraph new_followers_by_source_graph:StatsGraph languages_graph:StatsGraph recent_message_interactions:Vector<MessageInteractionCounters> = stats.BroadcastStats;
messages.chatFull#e5d7d19c full_chat:ChatFull chats:Vector<Chat> users:Vector<User> = messages.ChatFull;
-channelFull#f2bcb6f flags:# can_view_participants:flags.3?true can_set_username:flags.6?true can_set_stickers:flags.7?true hidden_prehistory:flags.10?true can_set_location:flags.16?true has_scheduled:flags.19?true can_view_stats:flags.20?true blocked:flags.22?true flags2:# can_delete_channel:flags2.0?true antispam:flags2.1?true participants_hidden:flags2.2?true translations_disabled:flags2.3?true stories_pinned_available:flags2.5?true view_forum_as_messages:flags2.6?true id:long about:string participants_count:flags.0?int admins_count:flags.1?int kicked_count:flags.2?int banned_count:flags.2?int online_count:flags.13?int read_inbox_max_id:int read_outbox_max_id:int unread_count:int chat_photo:Photo notify_settings:PeerNotifySettings exported_invite:flags.23?ExportedChatInvite bot_info:Vector<BotInfo> migrated_from_chat_id:flags.4?long migrated_from_max_id:flags.4?int pinned_msg_id:flags.5?int stickerset:flags.8?StickerSet available_min_id:flags.9?int folder_id:flags.11?int linked_chat_id:flags.14?long location:flags.15?ChannelLocation slowmode_seconds:flags.17?int slowmode_next_send_date:flags.18?int stats_dc:flags.12?int pts:int call:flags.21?InputGroupCall ttl_period:flags.24?int pending_suggestions:flags.25?Vector<string> groupcall_default_join_as:flags.26?Peer theme_emoticon:flags.27?string requests_pending:flags.28?int recent_requesters:flags.28?Vector<long> default_send_as:flags.29?Peer available_reactions:flags.30?ChatReactions stories:flags2.4?PeerStories wallpaper:flags2.7?WallPaper = ChatFull;
+channelFull#f2355507 flags:# can_view_participants:flags.3?true can_set_username:flags.6?true can_set_stickers:flags.7?true hidden_prehistory:flags.10?true can_set_location:flags.16?true has_scheduled:flags.19?true can_view_stats:flags.20?true blocked:flags.22?true flags2:# can_delete_channel:flags2.0?true antispam:flags2.1?true participants_hidden:flags2.2?true translations_disabled:flags2.3?true id:long about:string participants_count:flags.0?int admins_count:flags.1?int kicked_count:flags.2?int banned_count:flags.2?int online_count:flags.13?int read_inbox_max_id:int read_outbox_max_id:int unread_count:int chat_photo:Photo notify_settings:PeerNotifySettings exported_invite:flags.23?ExportedChatInvite bot_info:Vector<BotInfo> migrated_from_chat_id:flags.4?long migrated_from_max_id:flags.4?int pinned_msg_id:flags.5?int stickerset:flags.8?StickerSet available_min_id:flags.9?int folder_id:flags.11?int linked_chat_id:flags.14?long location:flags.15?ChannelLocation slowmode_seconds:flags.17?int slowmode_next_send_date:flags.18?int stats_dc:flags.12?int pts:int call:flags.21?InputGroupCall ttl_period:flags.24?int pending_suggestions:flags.25?Vector<string> groupcall_default_join_as:flags.26?Peer theme_emoticon:flags.27?string requests_pending:flags.28?int recent_requesters:flags.28?Vector<long> default_send_as:flags.29?Peer available_reactions:flags.30?ChatReactions = ChatFull;
---functions---
@@ -98,7 +97,7 @@ Note that in this case, current
refers to the period
i
stats.megagroupStats#ef7ff916 period:StatsDateRangeDays members:StatsAbsValueAndPrev messages:StatsAbsValueAndPrev viewers:StatsAbsValueAndPrev posters:StatsAbsValueAndPrev growth_graph:StatsGraph members_graph:StatsGraph new_members_by_source_graph:StatsGraph languages_graph:StatsGraph messages_graph:StatsGraph actions_graph:StatsGraph top_hours_graph:StatsGraph weekdays_graph:StatsGraph top_posters:Vector<StatsGroupTopPoster> top_admins:Vector<StatsGroupTopAdmin> top_inviters:Vector<StatsGroupTopInviter> users:Vector<User> = stats.MegagroupStats;
messages.chatFull#e5d7d19c full_chat:ChatFull chats:Vector<Chat> users:Vector<User> = messages.ChatFull;
-channelFull#f2bcb6f flags:# can_view_participants:flags.3?true can_set_username:flags.6?true can_set_stickers:flags.7?true hidden_prehistory:flags.10?true can_set_location:flags.16?true has_scheduled:flags.19?true can_view_stats:flags.20?true blocked:flags.22?true flags2:# can_delete_channel:flags2.0?true antispam:flags2.1?true participants_hidden:flags2.2?true translations_disabled:flags2.3?true stories_pinned_available:flags2.5?true view_forum_as_messages:flags2.6?true id:long about:string participants_count:flags.0?int admins_count:flags.1?int kicked_count:flags.2?int banned_count:flags.2?int online_count:flags.13?int read_inbox_max_id:int read_outbox_max_id:int unread_count:int chat_photo:Photo notify_settings:PeerNotifySettings exported_invite:flags.23?ExportedChatInvite bot_info:Vector<BotInfo> migrated_from_chat_id:flags.4?long migrated_from_max_id:flags.4?int pinned_msg_id:flags.5?int stickerset:flags.8?StickerSet available_min_id:flags.9?int folder_id:flags.11?int linked_chat_id:flags.14?long location:flags.15?ChannelLocation slowmode_seconds:flags.17?int slowmode_next_send_date:flags.18?int stats_dc:flags.12?int pts:int call:flags.21?InputGroupCall ttl_period:flags.24?int pending_suggestions:flags.25?Vector<string> groupcall_default_join_as:flags.26?Peer theme_emoticon:flags.27?string requests_pending:flags.28?int recent_requesters:flags.28?Vector<long> default_send_as:flags.29?Peer available_reactions:flags.30?ChatReactions stories:flags2.4?PeerStories wallpaper:flags2.7?WallPaper = ChatFull;
+channelFull#f2355507 flags:# can_view_participants:flags.3?true can_set_username:flags.6?true can_set_stickers:flags.7?true hidden_prehistory:flags.10?true can_set_location:flags.16?true has_scheduled:flags.19?true can_view_stats:flags.20?true blocked:flags.22?true flags2:# can_delete_channel:flags2.0?true antispam:flags2.1?true participants_hidden:flags2.2?true translations_disabled:flags2.3?true id:long about:string participants_count:flags.0?int admins_count:flags.1?int kicked_count:flags.2?int banned_count:flags.2?int online_count:flags.13?int read_inbox_max_id:int read_outbox_max_id:int unread_count:int chat_photo:Photo notify_settings:PeerNotifySettings exported_invite:flags.23?ExportedChatInvite bot_info:Vector<BotInfo> migrated_from_chat_id:flags.4?long migrated_from_max_id:flags.4?int pinned_msg_id:flags.5?int stickerset:flags.8?StickerSet available_min_id:flags.9?int folder_id:flags.11?int linked_chat_id:flags.14?long location:flags.15?ChannelLocation slowmode_seconds:flags.17?int slowmode_next_send_date:flags.18?int stats_dc:flags.12?int pts:int call:flags.21?InputGroupCall ttl_period:flags.24?int pending_suggestions:flags.25?Vector<string> groupcall_default_join_as:flags.26?Peer theme_emoticon:flags.27?string requests_pending:flags.28?int recent_requesters:flags.28?Vector<long> default_send_as:flags.29?Peer available_reactions:flags.30?ChatReactions = ChatFull;
---functions---
@@ -109,37 +108,19 @@ Note that in this case, current
refers to the period
i
The query must be sent to the datacenter with ID channelFull.stats_dc
, obtainable using channels.getFullChannel.
The returned stats.broadcastStats contains multiple statistics, see the constructor page for more info ».
Message statistics
-stats.messageStats#7fe91c14 views_graph:StatsGraph reactions_by_emotion_graph:StatsGraph = stats.MessageStats;
+stats.messageStats#8999f295 views_graph:StatsGraph = stats.MessageStats;
messages.chatFull#e5d7d19c full_chat:ChatFull chats:Vector<Chat> users:Vector<User> = messages.ChatFull;
-channelFull#f2bcb6f flags:# can_view_participants:flags.3?true can_set_username:flags.6?true can_set_stickers:flags.7?true hidden_prehistory:flags.10?true can_set_location:flags.16?true has_scheduled:flags.19?true can_view_stats:flags.20?true blocked:flags.22?true flags2:# can_delete_channel:flags2.0?true antispam:flags2.1?true participants_hidden:flags2.2?true translations_disabled:flags2.3?true stories_pinned_available:flags2.5?true view_forum_as_messages:flags2.6?true id:long about:string participants_count:flags.0?int admins_count:flags.1?int kicked_count:flags.2?int banned_count:flags.2?int online_count:flags.13?int read_inbox_max_id:int read_outbox_max_id:int unread_count:int chat_photo:Photo notify_settings:PeerNotifySettings exported_invite:flags.23?ExportedChatInvite bot_info:Vector<BotInfo> migrated_from_chat_id:flags.4?long migrated_from_max_id:flags.4?int pinned_msg_id:flags.5?int stickerset:flags.8?StickerSet available_min_id:flags.9?int folder_id:flags.11?int linked_chat_id:flags.14?long location:flags.15?ChannelLocation slowmode_seconds:flags.17?int slowmode_next_send_date:flags.18?int stats_dc:flags.12?int pts:int call:flags.21?InputGroupCall ttl_period:flags.24?int pending_suggestions:flags.25?Vector<string> groupcall_default_join_as:flags.26?Peer theme_emoticon:flags.27?string requests_pending:flags.28?int recent_requesters:flags.28?Vector<long> default_send_as:flags.29?Peer available_reactions:flags.30?ChatReactions stories:flags2.4?PeerStories wallpaper:flags2.7?WallPaper = ChatFull;
+channelFull#f2355507 flags:# can_view_participants:flags.3?true can_set_username:flags.6?true can_set_stickers:flags.7?true hidden_prehistory:flags.10?true can_set_location:flags.16?true has_scheduled:flags.19?true can_view_stats:flags.20?true blocked:flags.22?true flags2:# can_delete_channel:flags2.0?true antispam:flags2.1?true participants_hidden:flags2.2?true translations_disabled:flags2.3?true id:long about:string participants_count:flags.0?int admins_count:flags.1?int kicked_count:flags.2?int banned_count:flags.2?int online_count:flags.13?int read_inbox_max_id:int read_outbox_max_id:int unread_count:int chat_photo:Photo notify_settings:PeerNotifySettings exported_invite:flags.23?ExportedChatInvite bot_info:Vector<BotInfo> migrated_from_chat_id:flags.4?long migrated_from_max_id:flags.4?int pinned_msg_id:flags.5?int stickerset:flags.8?StickerSet available_min_id:flags.9?int folder_id:flags.11?int linked_chat_id:flags.14?long location:flags.15?ChannelLocation slowmode_seconds:flags.17?int slowmode_next_send_date:flags.18?int stats_dc:flags.12?int pts:int call:flags.21?InputGroupCall ttl_period:flags.24?int pending_suggestions:flags.25?Vector<string> groupcall_default_join_as:flags.26?Peer theme_emoticon:flags.27?string requests_pending:flags.28?int recent_requesters:flags.28?Vector<long> default_send_as:flags.29?Peer available_reactions:flags.30?ChatReactions = ChatFull;
---functions---
stats.getMessageStats#b6e0a3f5 flags:# dark:flags.0?true channel:InputChannel msg_id:int = stats.MessageStats;
-channels.getFullChannel#8736a09 channel:InputChannel = messages.ChatFull;
-
-stats.getMessagePublicForwards#5f150144 channel:InputChannel msg_id:int offset:string limit:int = stats.PublicForwards;
+channels.getFullChannel#8736a09 channel:InputChannel = messages.ChatFull;
Administrators of channels of a certain size (the exact limit is a server-side config, returned in the can_view_stats
flag of channelFull) can invoke stats.getMessageStats to get statistics of a specific message.
The query must be sent to the datacenter with ID channelFull.stats_dc
, obtainable using channels.getFullChannel.
The returned stats.messageStats contains the view graph of the message.
-stats.getMessagePublicForwards may also be used to obtain a list of messages, indicating to which other public channels was a channel message forwarded: it will return a list of messages with peer_id
equal to the public channel to which this message was forwarded.
-Story statistics
-stats.storyStats#50cd067c views_graph:StatsGraph reactions_by_emotion_graph:StatsGraph = stats.StoryStats;
-
-publicForwardMessage#1f2bf4a message:Message = PublicForward;
-publicForwardStory#edf3add0 peer:Peer story:StoryItem = PublicForward;
-
-stats.publicForwards#93037e20 flags:# count:int forwards:Vector<PublicForward> next_offset:flags.0?string chats:Vector<Chat> users:Vector<User> = stats.PublicForwards;
-
----functions---
-
-stats.getStoryStats#374fef40 flags:# dark:flags.0?true peer:InputPeer id:int = stats.StoryStats;
-
-stats.getStoryPublicForwards#a6437ef6 peer:InputPeer id:int offset:string limit:int = stats.PublicForwards;
-Use stats.getStoryStats to obtain statistics about a story.
-Use stats.getStoryPublicForwards to obtain forwards of a story as a message to public chats and reposts by public channels.
Graph visualization
There are four available visualizations for graph types:
diff --git a/data/web/corefork.telegram.org/bots/features.html b/data/web/corefork.telegram.org/bots/features.html
index 1b82676936..72d51aebc1 100644
--- a/data/web/corefork.telegram.org/bots/features.html
+++ b/data/web/corefork.telegram.org/bots/features.html
@@ -391,7 +391,6 @@ width=44% />
Telegram also offers a dedicated test environment suitable for more advanced testing. Bots and users in this environment generally have more flexible restrictions – for example:
- When working with the test environment, you may use HTTP links without TLS to test your Web Apps or Web Login.
-- You can test topics without needing 200 users in your group.
Flood limits are not raised in the test environment, and may at times be stricter. To minimize how this impacts your bot, you should make sure that it handles errors with retry policies and does not depend on hardcoded limit values.
diff --git a/data/web/corefork.telegram.org/constructor/appWebViewResultUrl.html b/data/web/corefork.telegram.org/constructor/appWebViewResultUrl.html
index 313635abd3..8027966fe1 100644
--- a/data/web/corefork.telegram.org/constructor/appWebViewResultUrl.html
+++ b/data/web/corefork.telegram.org/constructor/appWebViewResultUrl.html
@@ -4,10 +4,10 @@
appWebViewResultUrl
-
+
-
+
@@ -42,7 +42,7 @@
appWebViewResultUrl
- Contains the link that must be used to open a named bot web app.
+ Contains the link that must be used to open a direct link Mini App.
-
@@ -76,7 +76,7 @@
Type
Related pages
-Bot web apps
+Mini Apps on Telegram
Bots can offer users interactive HTML5 web apps to completely replace any website.
diff --git a/data/web/corefork.telegram.org/constructor/attachMenuBotIconColor.html b/data/web/corefork.telegram.org/constructor/attachMenuBotIconColor.html
index 9c84da405b..1d626265e1 100644
--- a/data/web/corefork.telegram.org/constructor/attachMenuBotIconColor.html
+++ b/data/web/corefork.telegram.org/constructor/attachMenuBotIconColor.html
@@ -4,10 +4,10 @@
attachMenuBotIconColor
-
+
-
+
@@ -42,7 +42,7 @@
attachMenuBotIconColor
- Represents an attachment menu icon color for bot web apps »
+ Represents an attachment menu icon color for bot mini apps »
-
@@ -81,8 +81,8 @@
Type
Related pages
-Bot attachment menu entries
-Bots can install attachment menu entries, offering conveniently accessible, versatile web apps.
+Bot attachment menu and side menu entries
+Bots can install attachment menu and side menu entries, offering conveniently accessible, versatile web apps.
diff --git a/data/web/corefork.telegram.org/constructor/attachMenuBots.html b/data/web/corefork.telegram.org/constructor/attachMenuBots.html
index 34b94f2f82..8e631da6ba 100644
--- a/data/web/corefork.telegram.org/constructor/attachMenuBots.html
+++ b/data/web/corefork.telegram.org/constructor/attachMenuBots.html
@@ -4,10 +4,10 @@
attachMenuBots
-
+
-
+
@@ -42,7 +42,7 @@
attachMenuBots
- Represents a list of bot web apps that can be launched from the attachment menu »
+ Represents a list of bot mini apps that can be launched from the attachment menu »
-
@@ -74,7 +74,7 @@
bots
Vector<AttachMenuBot>
-List of bot web apps that can be launched from the attachment menu »
+List of bot mini apps that can be launched from the attachment menu »
users
@@ -88,8 +88,8 @@
Related pages
Pagination in the API
How to fetch results from large lists of objects.
-Bot attachment menu entries
-Bots can install attachment menu entries, offering conveniently accessible, versatile web apps.
+Bot attachment menu and side menu entries
+Bots can install attachment menu and side menu entries, offering conveniently accessible, versatile web apps.
diff --git a/data/web/corefork.telegram.org/constructor/auth.loginToken.html b/data/web/corefork.telegram.org/constructor/auth.loginToken.html
index 21cf1781c9..f5f0133e0b 100644
--- a/data/web/corefork.telegram.org/constructor/auth.loginToken.html
+++ b/data/web/corefork.telegram.org/constructor/auth.loginToken.html
@@ -69,7 +69,7 @@
expires
int
-Expiry date of QR code
+Expiration date of QR code
token
diff --git a/data/web/corefork.telegram.org/constructor/botInlineMessageText.html b/data/web/corefork.telegram.org/constructor/botInlineMessageText.html
index 5d9abf6401..95170cdf08 100644
--- a/data/web/corefork.telegram.org/constructor/botInlineMessageText.html
+++ b/data/web/corefork.telegram.org/constructor/botInlineMessageText.html
@@ -77,6 +77,11 @@
Disable webpage preview
+invert_media
+flags.3?true
+If set, any eventual webpage preview will be shown on top of the message instead of at the bottom.
+
+
message
string
The message
diff --git a/data/web/corefork.telegram.org/constructor/channelAdminLogEventsFilter.html b/data/web/corefork.telegram.org/constructor/channelAdminLogEventsFilter.html
index 41e7a3dbe2..2aa328d3b2 100644
--- a/data/web/corefork.telegram.org/constructor/channelAdminLogEventsFilter.html
+++ b/data/web/corefork.telegram.org/constructor/channelAdminLogEventsFilter.html
@@ -74,7 +74,7 @@
join
flags.0?true
-Join events
+Join events, including joins using invite links and join requests.
leave
@@ -119,12 +119,12 @@
info
flags.9?true
-Info change events (when about, linked chat, location, photo, stickerset, title or username data of a channel gets modified)
+Info change events (when about, linked chat, location, photo, stickerset, title or username, slowmode, history TTL settings of a channel gets modified)
settings
flags.10?true
-Settings change events (invites, hidden prehistory, signatures, default banned rights)
+Settings change events (invites, hidden prehistory, signatures, default banned rights, forum toggle events)
pinned
@@ -168,6 +168,10 @@
Related pages
channelAdminLogEventActionParticipantJoin
A user has joined the group (in the case of big groups, info of the user that has joined isn't shown)
+channelAdminLogEventActionParticipantJoinByInvite
+A user joined the supergroup/channel using a specific invite link
+channelAdminLogEventActionParticipantJoinByRequest
+A new member was accepted to the chat by an admin
channelAdminLogEventActionParticipantLeave
A user left the channel/supergroup (in the case of big groups, info of the user that has joined isn't shown)
channelAdminLogEventActionParticipantInvite
@@ -190,6 +194,10 @@
Channel/supergroup title was changed
channelAdminLogEventActionChangeUsername
Channel/supergroup username was changed
+channelAdminLogEventActionToggleSlowMode
+Slow mode setting for supergroups was changed
+channelAdminLogEventActionChangeHistoryTTL
+The Time-To-Live of messages in this chat was changed
channelAdminLogEventActionToggleInvites
Invites were enabled/disabled
channelAdminLogEventActionTogglePreHistoryHidden
@@ -198,6 +206,8 @@
Channel signatures were enabled/disabled
channelAdminLogEventActionDefaultBannedRights
The default banned rights were modified
+channelAdminLogEventActionToggleForum
+Forum functionality was enabled or disabled.
channelAdminLogEventActionUpdatePinned
A message was pinned
channelAdminLogEventActionEditMessage
diff --git a/data/web/corefork.telegram.org/constructor/exportedContactToken.html b/data/web/corefork.telegram.org/constructor/exportedContactToken.html
index e7cee573fd..7008529657 100644
--- a/data/web/corefork.telegram.org/constructor/exportedContactToken.html
+++ b/data/web/corefork.telegram.org/constructor/exportedContactToken.html
@@ -74,7 +74,7 @@
expires
int
-Its expiry date
+Its expiration date
diff --git a/data/web/corefork.telegram.org/constructor/inputBotAppID.html b/data/web/corefork.telegram.org/constructor/inputBotAppID.html
index cf0b3c07d3..293eb33048 100644
--- a/data/web/corefork.telegram.org/constructor/inputBotAppID.html
+++ b/data/web/corefork.telegram.org/constructor/inputBotAppID.html
@@ -4,10 +4,10 @@
inputBotAppID
-
+
-
+
@@ -42,7 +42,7 @@
inputBotAppID
- Used to fetch information about a named bot web app by its ID
+ Used to fetch information about a direct link Mini App by its ID
-
@@ -69,7 +69,7 @@
id
long
-named bot web app ID.
+direct link Mini App ID.
access_hash
@@ -81,10 +81,10 @@
Type
Related pages
-Bot web apps
+Mini Apps on Telegram
Bots can offer users interactive HTML5 web apps to completely replace any website.
botApp
-Contains information about a named bot web app.
+Contains information about a direct link Mini App.
diff --git a/data/web/corefork.telegram.org/constructor/inputBotAppShortName.html b/data/web/corefork.telegram.org/constructor/inputBotAppShortName.html
index 477c2d0c47..21bc2cafe7 100644
--- a/data/web/corefork.telegram.org/constructor/inputBotAppShortName.html
+++ b/data/web/corefork.telegram.org/constructor/inputBotAppShortName.html
@@ -4,10 +4,10 @@
inputBotAppShortName
-
+
-
+
@@ -42,7 +42,7 @@
inputBotAppShortName
- Used to fetch information about a named bot web app by its short name
+ Used to fetch information about a direct link Mini App by its short name
-
@@ -69,12 +69,12 @@
bot_id
InputUser
-ID of the bot that owns the bot web app
+ID of the bot that owns the bot mini app
short_name
string
-Short name, obtained from a named bot web app deep link
+Short name, obtained from a Direct Mini App deep link
@@ -83,7 +83,7 @@
Related pages
Deep links
Telegram clients must handle special tg:// and t.me deep links encountered in messages, link entities and in other apps by registering OS handlers.
-Bot web apps
+Mini Apps on Telegram
Bots can offer users interactive HTML5 web apps to completely replace any website.
diff --git a/data/web/corefork.telegram.org/constructor/inputMediaVenue.html b/data/web/corefork.telegram.org/constructor/inputMediaVenue.html
index dfdb204981..14458f6f47 100644
--- a/data/web/corefork.telegram.org/constructor/inputMediaVenue.html
+++ b/data/web/corefork.telegram.org/constructor/inputMediaVenue.html
@@ -84,7 +84,7 @@
provider
string
-Venue provider: currently only "foursquare" needs to be supported
+Venue provider: currently only "foursquare" and "gplaces" (Google Places) need to be supported
venue_id
diff --git a/data/web/corefork.telegram.org/constructor/keyboardButtonRequestPeer.html b/data/web/corefork.telegram.org/constructor/keyboardButtonRequestPeer.html
index 7c83babdb4..071256ad9c 100644
--- a/data/web/corefork.telegram.org/constructor/keyboardButtonRequestPeer.html
+++ b/data/web/corefork.telegram.org/constructor/keyboardButtonRequestPeer.html
@@ -4,10 +4,10 @@
keyboardButtonRequestPeer
-
+
-
+
@@ -42,7 +42,7 @@
keyboardButtonRequestPeer
- Prompts the user to select and share a peer with the bot using messages.sendBotRequestedPeer
+ Prompts the user to select and share one or more peers with the bot using messages.sendBotRequestedPeer
-
@@ -79,7 +79,12 @@
peer_type
RequestPeerType
-Filtering criteria to use for the peer selection list shown to the user.
The list should display all existing peers of the specified type, and should also offer an option for the user to create and immediately use a peer of the specified type, if needed.
+Filtering criteria to use for the peer selection list shown to the user.
The list should display all existing peers of the specified type, and should also offer an option for the user to create and immediately use one or more (up to max_quantity
) peers of the specified type, if needed.
+
+
+max_quantity
+int
+Maximum number of peers that can be chosne.
@@ -87,7 +92,7 @@
Related pages
messages.sendBotRequestedPeer
-Send a chosen peer, as requested by a keyboardButtonRequestPeer button.
+Send one or more chosen peers, as requested by a keyboardButtonRequestPeer button.
diff --git a/data/web/corefork.telegram.org/constructor/keyboardButtonSimpleWebView.html b/data/web/corefork.telegram.org/constructor/keyboardButtonSimpleWebView.html
index 15b55a85ef..e0b193785b 100644
--- a/data/web/corefork.telegram.org/constructor/keyboardButtonSimpleWebView.html
+++ b/data/web/corefork.telegram.org/constructor/keyboardButtonSimpleWebView.html
@@ -4,10 +4,10 @@
keyboardButtonSimpleWebView
-
+
-
+
@@ -42,7 +42,7 @@
keyboardButtonSimpleWebView
- Button to open a bot web app using messages.requestSimpleWebView, without sending user information to the web app.
+ Button to open a bot mini app using messages.requestSimpleWebView, without sending user information to the web app.
Can only be sent or received as part of a reply keyboard, use keyboardButtonWebView for inline keyboards.
@@ -82,12 +82,12 @@
Type
Related pages
-Bot web apps
+Mini Apps on Telegram
Bots can offer users interactive HTML5 web apps to completely replace any website.
messages.requestSimpleWebView
-Open a bot web app.
+Open a bot mini app.
keyboardButtonWebView
-Button to open a bot web app using messages.requestWebView, sending over user information after user confirmation.
+Button to open a bot mini app using messages.requestWebView, sending over user information after user confirmation.
Can only be sent or received as part of an inline keyboard, use keyboardButtonSimpleWebView for reply keyboards.
diff --git a/data/web/corefork.telegram.org/constructor/messageActionWebViewDataSentMe.html b/data/web/corefork.telegram.org/constructor/messageActionWebViewDataSentMe.html
index 534d2e09bc..bee9e169a8 100644
--- a/data/web/corefork.telegram.org/constructor/messageActionWebViewDataSentMe.html
+++ b/data/web/corefork.telegram.org/constructor/messageActionWebViewDataSentMe.html
@@ -4,10 +4,10 @@
messageActionWebViewDataSentMe
-
+
-
+
@@ -42,7 +42,7 @@
messageActionWebViewDataSentMe
- Data from an opened reply keyboard bot web app was relayed to the bot that owns it (bot side service message).
+ Data from an opened reply keyboard bot mini app was relayed to the bot that owns it (bot side service message).
-
@@ -82,9 +82,9 @@
Related pages
keyboardButtonSimpleWebView
-Button to open a bot web app using messages.requestSimpleWebView, without sending user information to the web app.
+Button to open a bot mini app using messages.requestSimpleWebView, without sending user information to the web app.
Can only be sent or received as part of a reply keyboard, use keyboardButtonWebView for inline keyboards.
-Bot web apps
+Mini Apps on Telegram
Bots can offer users interactive HTML5 web apps to completely replace any website.
diff --git a/data/web/corefork.telegram.org/constructor/messageFwdHeader.html b/data/web/corefork.telegram.org/constructor/messageFwdHeader.html
index 8406906967..fdddcfdf60 100644
--- a/data/web/corefork.telegram.org/constructor/messageFwdHeader.html
+++ b/data/web/corefork.telegram.org/constructor/messageFwdHeader.html
@@ -77,6 +77,11 @@
Whether this message was imported from a foreign chat service, click here for more info »
+saved_out
+flags.11?true
+Only for messages forwarded to saved messages », set if the original message was outgoing (though the message may have been originally outgoing even if this flag is not set, if from_id
points to the current user).
+
+
from_id
flags.0?Peer
The ID of the user that originally sent the message
@@ -104,12 +109,27 @@
saved_from_peer
flags.4?Peer
-Only for messages forwarded to the current user (inputPeerSelf), full info about the user/channel that originally sent the message
+Only for messages forwarded to saved messages », contains the dialog where the message was originally sent.
saved_from_msg_id
flags.4?int
-Only for messages forwarded to the current user (inputPeerSelf), ID of the message that was forwarded from the original user/channel
+Only for messages forwarded to saved messages », contains the original ID of the message in saved_from_peer
.
+
+
+saved_from_id
+flags.8?Peer
+Only for forwarded messages reforwarded to saved messages », contains the sender of the original message (i.e. if user A sends a message, then user B forwards it somewhere, then user C saves it to saved messages, this field will contain the ID of user B and from_id
will contain the ID of user A).
+
+
+saved_from_name
+flags.9?string
+Only for forwarded messages from users with forward privacy enabled, sent by users with forward privacy enabled, reforwarded to saved messages », contains the sender of the original message (i.e. if user A (fwd privacy enabled) sends a message, then user B (fwd privacy enabled) forwards it somewhere, then user C saves it to saved messages, this field will contain the name of user B and from_name
will contain the name of user A).
+
+
+saved_date
+flags.10?int
+Only for forwarded messages reforwarded to saved messages », indicates when was the original message sent (i.e. if user A sends a message @ unixtime 1, then user B forwards it somewhere @ unixtime 2, then user C saves it to saved messages @ unixtime 3, this field will contain 2, date
will contain 1 and the date
of the containing message will contain 3).
psa_type
@@ -122,7 +142,11 @@
Related pages
Imported messages
-Telegram allows importing messages and media from foreign chat apps.
+Telegram allows importing messages and media from foreign chat apps.
+Saved messages
+The Saved Messages chat allows users to bookmark messages and media: it's a personal cloud storage for any messages or media you may want to send or forward there.
+message
+A message
diff --git a/data/web/corefork.telegram.org/constructor/messageMediaDocument.html b/data/web/corefork.telegram.org/constructor/messageMediaDocument.html
index 30a975fb50..3c31a4fdc1 100644
--- a/data/web/corefork.telegram.org/constructor/messageMediaDocument.html
+++ b/data/web/corefork.telegram.org/constructor/messageMediaDocument.html
@@ -82,11 +82,31 @@
Whether this media should be hidden behind a spoiler warning
+video
+flags.6?true
+Whether this is a video.
+
+
+round
+flags.7?true
+Whether this is a round video.
+
+
+voice
+flags.8?true
+Whether this is a voice message.
+
+
document
flags.0?Document
Attached document
+alt_document
+flags.5?Document
+Currently only used for story videos, may contain an alternative version of the story video, explicitly encoded using H.264 (in MPEG4 transport) at a lower resolution than document
.
+
+
ttl_seconds
flags.2?int
Time to live of self-destructing document
diff --git a/data/web/corefork.telegram.org/constructor/messagePeerReaction.html b/data/web/corefork.telegram.org/constructor/messagePeerReaction.html
index 69a653ac31..0640a81330 100644
--- a/data/web/corefork.telegram.org/constructor/messagePeerReaction.html
+++ b/data/web/corefork.telegram.org/constructor/messagePeerReaction.html
@@ -112,7 +112,7 @@
React to message.
Starting from layer 159, the reaction will be sent from the peer specified using messages.saveDefaultSendAs.
messages.saveDefaultSendAs
-Change the default peer that should be used when sending messages to a specific group
+Change the default peer that should be used when sending messages, reactions, poll votes to a specific group
diff --git a/data/web/corefork.telegram.org/constructor/messages.botApp.html b/data/web/corefork.telegram.org/constructor/messages.botApp.html
index 6fe9b67926..3f380d2e91 100644
--- a/data/web/corefork.telegram.org/constructor/messages.botApp.html
+++ b/data/web/corefork.telegram.org/constructor/messages.botApp.html
@@ -4,10 +4,10 @@
messages.botApp
-
+
-
+
@@ -42,7 +42,7 @@
messages.botApp
- Contains information about a named bot web app
+ Contains information about a direct link Mini App
-
@@ -82,6 +82,11 @@
The bot is asking permission to send messages to the user: if the user agrees, set the write_allowed
flag when invoking messages.requestAppWebView.
+has_settings
+flags.2?true
+Deprecated flag, can be ignored.
+
+
app
BotApp
Bot app information
@@ -92,9 +97,9 @@
Related pages
messages.requestAppWebView
-Open a bot web app from a named bot web app deep link, sending over user information after user confirmation.
+Open a bot mini app from a direct Mini App deep link, sending over user information after user confirmation.
After calling this method, until the user closes the webview, messages.prolongWebView must be called every 60 seconds.
-Bot web apps
+Mini Apps on Telegram
Bots can offer users interactive HTML5 web apps to completely replace any website.
diff --git a/data/web/corefork.telegram.org/constructor/messages.searchCounter.html b/data/web/corefork.telegram.org/constructor/messages.searchCounter.html
index 50539224fd..5a320ee236 100644
--- a/data/web/corefork.telegram.org/constructor/messages.searchCounter.html
+++ b/data/web/corefork.telegram.org/constructor/messages.searchCounter.html
@@ -92,7 +92,7 @@
Related pages
messages.search
-Returns found messages
+Search for messages.
diff --git a/data/web/corefork.telegram.org/constructor/messages.transcribedAudio.html b/data/web/corefork.telegram.org/constructor/messages.transcribedAudio.html
index 0aca5be087..30173a8617 100644
--- a/data/web/corefork.telegram.org/constructor/messages.transcribedAudio.html
+++ b/data/web/corefork.telegram.org/constructor/messages.transcribedAudio.html
@@ -86,6 +86,16 @@
string
Transcripted text
+
+trial_remains_num
+flags.1?int
+For non-Premium users, this flag will be set, indicating the remaining transcriptions in the free trial period.
+
+
+trial_remains_until_date
+flags.1?int
+For non-Premium users, this flag will be set, indicating the date when the trial_remains_num
counter will be reset to the maximum value of transcribe_audio_trial_weekly_number.
+
Type
@@ -93,6 +103,10 @@
Related pages
updateTranscribedAudio
A pending voice message transcription » initiated with messages.transcribeAudio was updated.
+Telegram Premium
+Telegram Premium is an optional subscription service that unlocks additional exclusive client-side and API-side features, while helping support the development of the app.
+Client configuration
+The MTProto API has multiple configuration parameters that can be fetched with the appropriate methods.
Voice message transcription
How to transcribe voice messages.
diff --git a/data/web/corefork.telegram.org/constructor/poll.html b/data/web/corefork.telegram.org/constructor/poll.html
index 3d2adece79..8e45c26674 100644
--- a/data/web/corefork.telegram.org/constructor/poll.html
+++ b/data/web/corefork.telegram.org/constructor/poll.html
@@ -122,7 +122,8 @@
Related pages
messages.sendVote
-Vote in a poll
+Vote in a poll
+Starting from layer 159, the vote will be sent from the peer specified using messages.saveDefaultSendAs.
diff --git a/data/web/corefork.telegram.org/constructor/pollResults.html b/data/web/corefork.telegram.org/constructor/pollResults.html
index 50b1355763..e35d92ec41 100644
--- a/data/web/corefork.telegram.org/constructor/pollResults.html
+++ b/data/web/corefork.telegram.org/constructor/pollResults.html
@@ -88,7 +88,7 @@
recent_voters
-flags.3?Vector<long>
+flags.3?Vector<Peer>
IDs of the last users that recently voted in the poll
diff --git a/data/web/corefork.telegram.org/constructor/requestPeerTypeUser.html b/data/web/corefork.telegram.org/constructor/requestPeerTypeUser.html
index 00b4076dd5..246b16f061 100644
--- a/data/web/corefork.telegram.org/constructor/requestPeerTypeUser.html
+++ b/data/web/corefork.telegram.org/constructor/requestPeerTypeUser.html
@@ -86,7 +86,8 @@
Type
Related pages
-Telegram Premium
+Telegram Premium
+Telegram Premium is an optional subscription service that unlocks additional exclusive client-side and API-side features, while helping support the development of the app.
diff --git a/data/web/corefork.telegram.org/constructor/stickerSet.html b/data/web/corefork.telegram.org/constructor/stickerSet.html
index c7aaf21ef9..f2849254db 100644
--- a/data/web/corefork.telegram.org/constructor/stickerSet.html
+++ b/data/web/corefork.telegram.org/constructor/stickerSet.html
@@ -102,6 +102,16 @@
This is a custom emoji stickerset
+text_color
+flags.9?true
+Whether the color of this TGS custom emoji stickerset should be changed to the text color when used in messages, the accent color if used as emoji status, white on chat photos, or another appropriate color based on context.
+
+
+channel_emoji_status
+flags.10?true
+If set, this custom emoji stickerset can be used in channel emoji statuses.
+
+
installed_date
flags.0?int
When was this stickerset installed
@@ -161,6 +171,8 @@
Type
Related pages
+Emoji status
+Telegram allows users to set an emoticon or a custom emoji as status, to show next to their name in chats and profiles.
Deep links
Telegram clients must handle special tg:// and t.me deep links encountered in messages, link entities and in other apps by registering OS handlers.
messages.getCustomEmojiDocuments
diff --git a/data/web/corefork.telegram.org/constructor/updateAttachMenuBots.html b/data/web/corefork.telegram.org/constructor/updateAttachMenuBots.html
index 83948ffa12..94185c44b8 100644
--- a/data/web/corefork.telegram.org/constructor/updateAttachMenuBots.html
+++ b/data/web/corefork.telegram.org/constructor/updateAttachMenuBots.html
@@ -61,10 +61,10 @@
Type
Related pages
-Bot attachment menu entries
-Bots can install attachment menu entries, offering conveniently accessible, versatile web apps.
+Bot attachment menu and side menu entries
+Bots can install attachment menu and side menu entries, offering conveniently accessible, versatile web apps.
messages.getAttachMenuBots
-Returns installed attachment menu bot web apps »
+Returns installed attachment menu bot mini apps »
diff --git a/data/web/corefork.telegram.org/constructor/updateNewAuthorization.html b/data/web/corefork.telegram.org/constructor/updateNewAuthorization.html
index 30b1347b56..fa6398fe27 100644
--- a/data/web/corefork.telegram.org/constructor/updateNewAuthorization.html
+++ b/data/web/corefork.telegram.org/constructor/updateNewAuthorization.html
@@ -4,24 +4,10 @@
updateNewAuthorization
-
+
-
+
@@ -56,7 +42,7 @@ Identifier…">
updateNewAuthorization
- Authorized to the current user's account through an unknown device.
+ A new session logged into the current user's account through an unknown device.
-
@@ -81,29 +67,44 @@ Identifier…">
-auth_key_id
+flags
+#
+Flags, see TL conditional fields
+
+
+unconfirmed
+flags.0?true
+Whether the session is unconfirmed, see here » for more info.
+
+
+hash
long
-Identifier of an authorization key to which the account is linked
+Hash for pagination, for more info click here
date
-int
+flags.0?int
Authorization date
device
-string
+flags.0?string
Name of device, for example Android
location
-string
+flags.0?string
Location, for example USA, NY (IP=1.2.3.4)
Type
-
+
+Related pages
+User Authorization
+How to register a user's phone to start using the API.
+Pagination in the API
+How to fetch results from large lists of objects.
diff --git a/data/web/corefork.telegram.org/constructor/webPageEmpty.html b/data/web/corefork.telegram.org/constructor/webPageEmpty.html
index 094b746c10..197ece09ea 100644
--- a/data/web/corefork.telegram.org/constructor/webPageEmpty.html
+++ b/data/web/corefork.telegram.org/constructor/webPageEmpty.html
@@ -67,10 +67,20 @@
+flags
+#
+Flags, see TL conditional fields
+
+
id
long
Preview ID
+
+url
+flags.0?string
+URL of the webpage.
+
Type
diff --git a/data/web/corefork.telegram.org/method/account.updateStatus.html b/data/web/corefork.telegram.org/method/account.updateStatus.html
index d2ddb48c26..1ecfd87cf1 100644
--- a/data/web/corefork.telegram.org/method/account.updateStatus.html
+++ b/data/web/corefork.telegram.org/method/account.updateStatus.html
@@ -78,23 +78,6 @@
Result
-Possible errors
-
-
-
-Code
-Type
-Description
-
-
-
-
-403
-CHAT_WRITE_FORBIDDEN
-You can't write in this chat.
-
-
-
Related pages
boolTrue
The constructor can be interpreted as a booleantrue
value.
diff --git a/data/web/corefork.telegram.org/method/channels.checkUsername.html b/data/web/corefork.telegram.org/method/channels.checkUsername.html
index 7ad09edf41..e8ec656ecc 100644
--- a/data/web/corefork.telegram.org/method/channels.checkUsername.html
+++ b/data/web/corefork.telegram.org/method/channels.checkUsername.html
@@ -115,6 +115,16 @@
400
+MSG_ID_INVALID
+Invalid message ID provided.
+
+
+400
+PEER_ID_INVALID
+The provided peer id is invalid.
+
+
+400
USERNAME_INVALID
The provided username is not valid.
diff --git a/data/web/corefork.telegram.org/method/channels.editPhoto.html b/data/web/corefork.telegram.org/method/channels.editPhoto.html
index 6977a301fa..1725f2a75c 100644
--- a/data/web/corefork.telegram.org/method/channels.editPhoto.html
+++ b/data/web/corefork.telegram.org/method/channels.editPhoto.html
@@ -116,7 +116,7 @@
400
CHAT_NOT_MODIFIED
-The pinned message wasn't modified.
+No changes were made to chat information because the new information you passed is identical to the current information.
403
@@ -135,6 +135,11 @@
400
+IMAGE_PROCESS_FAILED
+Failure while processing image.
+
+
+400
PHOTO_CROP_SIZE_SMALL
Photo is too small.
@@ -148,6 +153,11 @@
PHOTO_INVALID
Photo invalid.
+
+400
+STICKER_MIME_INVALID
+The specified sticker MIME type is invalid.
+
Bots can use this method
diff --git a/data/web/corefork.telegram.org/method/channels.getForumTopics.html b/data/web/corefork.telegram.org/method/channels.getForumTopics.html
index 6f48510b79..3d8281ae41 100644
--- a/data/web/corefork.telegram.org/method/channels.getForumTopics.html
+++ b/data/web/corefork.telegram.org/method/channels.getForumTopics.html
@@ -86,22 +86,22 @@
offset_date
int
-Offsets for pagination, for more info click here
+Offsets for pagination, for more info click here, date of the last message of the last found topic. Use 0 or any date in the future to get results from the last topic.
offset_id
int
-Offsets for pagination, for more info click here
+Offsets for pagination, for more info click here, ID of the last message of the last found topic (or initially 0
).
offset_topic
int
-Offsets for pagination, for more info click here
+Offsets for pagination, for more info click here, ID of the last found topic (or initially 0
).
limit
int
-Maximum number of results to return, see pagination
+Maximum number of results to return, see pagination. For optimal performance, the number of returned topics is chosen by the server and can be smaller than the specified limit.
@@ -127,9 +127,13 @@
CHANNEL_INVALID
The provided channel is invalid.
+
+400
+CHANNEL_PRIVATE
+You haven't joined this channel/supergroup.
+
-Bots can use this method
Related pages
Pagination in the API
How to fetch results from large lists of objects.
diff --git a/data/web/corefork.telegram.org/method/channels.getLeftChannels.html b/data/web/corefork.telegram.org/method/channels.getLeftChannels.html
index 39a61ab758..1ddc79fcfa 100644
--- a/data/web/corefork.telegram.org/method/channels.getLeftChannels.html
+++ b/data/web/corefork.telegram.org/method/channels.getLeftChannels.html
@@ -4,10 +4,10 @@
channels.getLeftChannels
-
+
-
+
@@ -42,7 +42,7 @@
channels.getLeftChannels
- Get a list of channels/supergroups we left
+ Get a list of channels/supergroups we left, requires a takeout session, see here » for more info.
-
@@ -91,7 +91,7 @@
403
TAKEOUT_REQUIRED
-A takeout session has to be initialized, first.
+A takeout session needs to be initialized first, see here » for more info.
@@ -99,7 +99,9 @@
Pagination in the API
How to fetch results from large lists of objects.
Channels, supergroups, gigagroups and basic groups
-How to handle channels, supergroups, gigagroups, basic groups, and what's the difference between them.
+How to handle channels, supergroups, gigagroups, basic groups, and what's the difference between them.
+Takeout API
+Telegram's API allows users to export all of their information through the takeout API.
diff --git a/data/web/corefork.telegram.org/method/channels.reportSpam.html b/data/web/corefork.telegram.org/method/channels.reportSpam.html
index 3ffc2647b7..e31bdd2fdd 100644
--- a/data/web/corefork.telegram.org/method/channels.reportSpam.html
+++ b/data/web/corefork.telegram.org/method/channels.reportSpam.html
@@ -115,6 +115,11 @@
400
+MSG_ID_INVALID
+Invalid message ID provided.
+
+
+400
USER_ID_INVALID
The provided user ID is invalid.
diff --git a/data/web/corefork.telegram.org/method/channels.setStickers.html b/data/web/corefork.telegram.org/method/channels.setStickers.html
index 1eb50e058f..24b96f9900 100644
--- a/data/web/corefork.telegram.org/method/channels.setStickers.html
+++ b/data/web/corefork.telegram.org/method/channels.setStickers.html
@@ -100,6 +100,11 @@
400
+CHAT_ID_INVALID
+The provided chat id is invalid.
+
+
+400
PARTICIPANTS_TOO_FEW
Not enough participants.
diff --git a/data/web/corefork.telegram.org/method/channels.toggleJoinRequest.html b/data/web/corefork.telegram.org/method/channels.toggleJoinRequest.html
index b4c910efd2..ed8fa5fd4e 100644
--- a/data/web/corefork.telegram.org/method/channels.toggleJoinRequest.html
+++ b/data/web/corefork.telegram.org/method/channels.toggleJoinRequest.html
@@ -105,13 +105,18 @@
400
+CHAT_ADMIN_REQUIRED
+You must be an admin in this chat to do this.
+
+
+400
CHAT_ID_INVALID
The provided chat id is invalid.
400
CHAT_NOT_MODIFIED
-The pinned message wasn't modified.
+No changes were made to chat information because the new information you passed is identical to the current information.
400
diff --git a/data/web/corefork.telegram.org/method/channels.toggleSlowMode.html b/data/web/corefork.telegram.org/method/channels.toggleSlowMode.html
index 984f8fded2..d3c6561991 100644
--- a/data/web/corefork.telegram.org/method/channels.toggleSlowMode.html
+++ b/data/web/corefork.telegram.org/method/channels.toggleSlowMode.html
@@ -110,8 +110,13 @@
400
+CHAT_ID_INVALID
+The provided chat id is invalid.
+
+
+400
CHAT_NOT_MODIFIED
-The pinned message wasn't modified.
+No changes were made to chat information because the new information you passed is identical to the current information.
400
diff --git a/data/web/corefork.telegram.org/method/channels.toggleUsername.html b/data/web/corefork.telegram.org/method/channels.toggleUsername.html
index d0decfa26a..45ed36f2b5 100644
--- a/data/web/corefork.telegram.org/method/channels.toggleUsername.html
+++ b/data/web/corefork.telegram.org/method/channels.toggleUsername.html
@@ -100,6 +100,16 @@
400
+CHANNEL_PRIVATE
+You haven't joined this channel/supergroup.
+
+
+400
+CHAT_ADMIN_REQUIRED
+You must be an admin in this chat to do this.
+
+
+400
USERNAMES_ACTIVE_TOO_MUCH
The maximum number of active usernames was reached.
diff --git a/data/web/corefork.telegram.org/method/channels.viewSponsoredMessage.html b/data/web/corefork.telegram.org/method/channels.viewSponsoredMessage.html
index fd5c62d278..730250c9e2 100644
--- a/data/web/corefork.telegram.org/method/channels.viewSponsoredMessage.html
+++ b/data/web/corefork.telegram.org/method/channels.viewSponsoredMessage.html
@@ -98,6 +98,11 @@
CHANNEL_INVALID
The provided channel is invalid.
+
+400
+CHANNEL_PRIVATE
+You haven't joined this channel/supergroup.
+
Errors
diff --git a/data/web/corefork.telegram.org/method/chatlists.checkChatlistInvite.html b/data/web/corefork.telegram.org/method/chatlists.checkChatlistInvite.html
index afc9811d0f..bdd7959e7f 100644
--- a/data/web/corefork.telegram.org/method/chatlists.checkChatlistInvite.html
+++ b/data/web/corefork.telegram.org/method/chatlists.checkChatlistInvite.html
@@ -93,6 +93,11 @@
INVITE_SLUG_EMPTY
The specified invite slug is empty.
+
+400
+INVITE_SLUG_EXPIRED
+The specified chat folder link has expired.
+
Bots can use this method
diff --git a/data/web/corefork.telegram.org/method/contacts.acceptContact.html b/data/web/corefork.telegram.org/method/contacts.acceptContact.html
index d6ebe5e5b6..0432601bef 100644
--- a/data/web/corefork.telegram.org/method/contacts.acceptContact.html
+++ b/data/web/corefork.telegram.org/method/contacts.acceptContact.html
@@ -4,10 +4,10 @@
contacts.acceptContact
-
+
-
+
@@ -42,7 +42,7 @@
contacts.acceptContact
- If the peer settings of a new user allow us to add them as contact, add that user as contact
+ If the add contact action bar is active, add that user as contact
-
@@ -116,8 +116,8 @@
Related pages
-peerSettings
-List of actions that are possible when interacting with this user, to be shown as suggested actions in the chat bar
+Action bar
+Sometimes, when interacting with Telegram users via private or secret chats, an action bar must be shown on top of the chat, offering convenient action buttons or notices regarding the user.
diff --git a/data/web/corefork.telegram.org/method/contacts.getStatuses.html b/data/web/corefork.telegram.org/method/contacts.getStatuses.html
index 20a27dc2bf..b44c5ee564 100644
--- a/data/web/corefork.telegram.org/method/contacts.getStatuses.html
+++ b/data/web/corefork.telegram.org/method/contacts.getStatuses.html
@@ -4,10 +4,10 @@
contacts.getStatuses
-
+
-
+
@@ -42,7 +42,7 @@
contacts.getStatuses
- Returns the list of contact statuses.
+ Use this method to obtain the online statuses of all contacts with an accessible Telegram account.
-
diff --git a/data/web/corefork.telegram.org/method/folders.editPeerFolders.html b/data/web/corefork.telegram.org/method/folders.editPeerFolders.html
index fae7d366b2..4a2a086057 100644
--- a/data/web/corefork.telegram.org/method/folders.editPeerFolders.html
+++ b/data/web/corefork.telegram.org/method/folders.editPeerFolders.html
@@ -95,6 +95,11 @@
400
+CHANNEL_PRIVATE
+You haven't joined this channel/supergroup.
+
+
+400
CHAT_ID_INVALID
The provided chat id is invalid.
diff --git a/data/web/corefork.telegram.org/method/messages.createChat.html b/data/web/corefork.telegram.org/method/messages.createChat.html
index f859e9f3d8..c18e019161 100644
--- a/data/web/corefork.telegram.org/method/messages.createChat.html
+++ b/data/web/corefork.telegram.org/method/messages.createChat.html
@@ -131,6 +131,11 @@
400
+TTL_PERIOD_INVALID
+The specified TTL period is invalid.
+
+
+400
USERS_TOO_FEW
Not enough users (to create a chat, for example).
diff --git a/data/web/corefork.telegram.org/method/messages.editChatAbout.html b/data/web/corefork.telegram.org/method/messages.editChatAbout.html
index 4c7b92fce3..a9af1d43a7 100644
--- a/data/web/corefork.telegram.org/method/messages.editChatAbout.html
+++ b/data/web/corefork.telegram.org/method/messages.editChatAbout.html
@@ -126,7 +126,7 @@
400
CHAT_NOT_MODIFIED
-The pinned message wasn't modified.
+No changes were made to chat information because the new information you passed is identical to the current information.
403
diff --git a/data/web/corefork.telegram.org/method/messages.getMessageReactionsList.html b/data/web/corefork.telegram.org/method/messages.getMessageReactionsList.html
index d3c0213880..533a82401d 100644
--- a/data/web/corefork.telegram.org/method/messages.getMessageReactionsList.html
+++ b/data/web/corefork.telegram.org/method/messages.getMessageReactionsList.html
@@ -86,12 +86,12 @@
reaction
flags.0?Reaction
-Get only reactions of this type (UTF8 emoji)
+Get only reactions of this type
offset
flags.1?string
-Offset (typically taken from the next_offset
field of the returned messages.MessageReactionsList)
+Offset for pagination (taken from the next_offset
field of the returned messages.MessageReactionsList); empty in the first request.
limit
@@ -115,7 +115,7 @@
403
BROADCAST_FORBIDDEN
-Participants of polls in channels should stay anonymous.
+Channel poll voters and reactions cannot be fetched to prevent deanonymization.
400
diff --git a/data/web/corefork.telegram.org/method/messages.getPollVotes.html b/data/web/corefork.telegram.org/method/messages.getPollVotes.html
index d457246e97..349413fbd0 100644
--- a/data/web/corefork.telegram.org/method/messages.getPollVotes.html
+++ b/data/web/corefork.telegram.org/method/messages.getPollVotes.html
@@ -115,7 +115,7 @@
403
BROADCAST_FORBIDDEN
-Participants of polls in channels should stay anonymous.
+Channel poll voters and reactions cannot be fetched to prevent deanonymization.
400
diff --git a/data/web/corefork.telegram.org/method/messages.getSearchCounters.html b/data/web/corefork.telegram.org/method/messages.getSearchCounters.html
index 305383915a..b17eebaac8 100644
--- a/data/web/corefork.telegram.org/method/messages.getSearchCounters.html
+++ b/data/web/corefork.telegram.org/method/messages.getSearchCounters.html
@@ -78,6 +78,11 @@
Peer where to search
+saved_peer_id
+flags.2?InputPeer
+Search within the saved message dialog » with this ID.
+
+
top_msg_id
flags.0?int
If set, consider only messages within the specified forum topic
@@ -109,10 +114,12 @@
Related pages
+Saved messages
+The Saved Messages chat allows users to bookmark messages and media: it's a personal cloud storage for any messages or media you may want to send or forward there.
Forums
Telegram allows creating forums with multiple distinct topics.
messages.search
-Returns found messages
+Search for messages.
diff --git a/data/web/corefork.telegram.org/method/messages.getSearchResultsCalendar.html b/data/web/corefork.telegram.org/method/messages.getSearchResultsCalendar.html
index df0e98e47c..eb9002a7f5 100644
--- a/data/web/corefork.telegram.org/method/messages.getSearchResultsCalendar.html
+++ b/data/web/corefork.telegram.org/method/messages.getSearchResultsCalendar.html
@@ -4,10 +4,10 @@
messages.getSearchResultsCalendar
-
+
-
+
@@ -71,11 +71,21 @@ Can return partial results for the last returned day.
+flags
+#
+Flags, see TL conditional fields
+
+
peer
InputPeer
Peer where to search
+saved_peer_id
+flags.2?InputPeer
+Search within the saved message dialog » with this ID.
+
+
filter
MessagesFilter
Message filter, inputMessagesFilterEmpty, inputMessagesFilterMyMentions filters are not supported by this method.
@@ -112,6 +122,8 @@ Can return partial results for the last returned day.
Related pages
+Saved messages
+The Saved Messages chat allows users to bookmark messages and media: it's a personal cloud storage for any messages or media you may want to send or forward there.
inputMessagesFilterEmpty
Filter is absent.
inputMessagesFilterMyMentions
diff --git a/data/web/corefork.telegram.org/method/messages.getWebPage.html b/data/web/corefork.telegram.org/method/messages.getWebPage.html
index e1c6ac8874..62f3d7c5c5 100644
--- a/data/web/corefork.telegram.org/method/messages.getWebPage.html
+++ b/data/web/corefork.telegram.org/method/messages.getWebPage.html
@@ -81,7 +81,7 @@
Result
-
+
Possible errors
diff --git a/data/web/corefork.telegram.org/method/messages.hideAllChatJoinRequests.html b/data/web/corefork.telegram.org/method/messages.hideAllChatJoinRequests.html
index c9d9c07cc3..311352e992 100644
--- a/data/web/corefork.telegram.org/method/messages.hideAllChatJoinRequests.html
+++ b/data/web/corefork.telegram.org/method/messages.hideAllChatJoinRequests.html
@@ -110,6 +110,16 @@
400
+CHANNELS_TOO_MUCH
+You have joined too many channels/supergroups.
+
+
+400
+CHANNEL_INVALID
+The provided channel is invalid.
+
+
+400
CHANNEL_PRIVATE
You haven't joined this channel/supergroup.
diff --git a/data/web/corefork.telegram.org/method/messages.migrateChat.html b/data/web/corefork.telegram.org/method/messages.migrateChat.html
index b495837091..3c8ecebcf9 100644
--- a/data/web/corefork.telegram.org/method/messages.migrateChat.html
+++ b/data/web/corefork.telegram.org/method/messages.migrateChat.html
@@ -109,6 +109,11 @@
The provided chat id is invalid.
+500
+CHAT_INVALID
+Invalid chat.
+
+
400
PEER_ID_INVALID
The provided peer id is invalid.
diff --git a/data/web/corefork.telegram.org/method/messages.prolongWebView.html b/data/web/corefork.telegram.org/method/messages.prolongWebView.html
index 841446a86f..90f8c79b4e 100644
--- a/data/web/corefork.telegram.org/method/messages.prolongWebView.html
+++ b/data/web/corefork.telegram.org/method/messages.prolongWebView.html
@@ -4,10 +4,10 @@
messages.prolongWebView
-
+
-
+
@@ -96,14 +96,9 @@
Web app interaction ID obtained from messages.requestWebView
-reply_to_msg_id
-flags.0?int
-Whether the inline message that will be sent by the bot on behalf of the user once the web app interaction is terminated should be sent in reply to this message ID.
-
-
-top_msg_id
-flags.9?int
-This field must contain the topic ID only when replying to messages in forum topics different from the "General" topic (i.e. reply_to_msg_id
is set and reply_to_msg_id != topicID
and topicID != 1
).
If the replied-to message is deleted before the method finishes execution, the value in this field will be used to send the message to the correct topic, instead of the "General" topic.
+reply_to
+flags.0?InputReplyTo
+If set, indicates that the inline message that will be sent by the bot on behalf of the user once the web app interaction is terminated should be sent in reply to the specified message or story.
send_as
@@ -117,13 +112,11 @@
Related pages
messages.sendWebViewResultMessage
Terminate webview interaction started with messages.requestWebView, sending the specified message to the chat on behalf of the user.
-Bot web apps
+Mini Apps on Telegram
Bots can offer users interactive HTML5 web apps to completely replace any website.
messages.requestWebView
-Open a bot web app, sending over user information after user confirmation.
-After calling this method, until the user closes the webview, messages.prolongWebView must be called every 60 seconds.
-Forums
-Telegram allows creating forums with multiple distinct topics.
+Open a bot mini app, sending over user information after user confirmation.
+After calling this method, until the user closes the webview, messages.prolongWebView must be called every 60 seconds.
diff --git a/data/web/corefork.telegram.org/method/messages.requestWebView.html b/data/web/corefork.telegram.org/method/messages.requestWebView.html
index 9ae3f51441..e1d7664726 100644
--- a/data/web/corefork.telegram.org/method/messages.requestWebView.html
+++ b/data/web/corefork.telegram.org/method/messages.requestWebView.html
@@ -4,10 +4,10 @@
messages.requestWebView
-
+
-
+
@@ -42,7 +42,7 @@
messages.requestWebView
- Open a bot web app, sending over user information after user confirmation.
+ Open a bot mini app, sending over user information after user confirmation.
After calling this method, until the user closes the webview, messages.prolongWebView must be called every 60 seconds.
@@ -102,7 +102,7 @@
start_param
flags.3?string
-If the web app was opened from the attachment menu using a attachment menu deep link, start_param
should contain the data
from the startattach
parameter.
+If the web app was opened from the attachment menu using a attachment menu deep link, start_param
should contain the data
from the startattach
parameter.
theme_params
@@ -115,14 +115,9 @@
Short name of the application; 0-64 English letters, digits, and underscores
-reply_to_msg_id
-flags.0?int
-Whether the inline message that will be sent by the bot on behalf of the user once the web app interaction is terminated should be sent in reply to this message ID.
-
-
-top_msg_id
-flags.9?int
-This field must contain the topic ID only when replying to messages in forum topics different from the "General" topic (i.e. reply_to_msg_id
is set and reply_to_msg_id != topicID
and topicID != 1
).
If the replied-to message is deleted before the method finishes execution, the value in this field will be used to send the message to the correct topic, instead of the "General" topic.
+reply_to
+flags.0?InputReplyTo
+If set, indicates that the inline message that will be sent by the bot on behalf of the user once the web app interaction is terminated should be sent in reply to the specified message or story.
send_as
@@ -133,18 +128,53 @@
Result
+Possible errors
+
+
+
+Code
+Type
+Description
+
+
+
+
+400
+BOT_INVALID
+This is not a valid bot.
+
+
+400
+BOT_WEBVIEW_DISABLED
+A webview cannot be opened in the specified conditions: emitted for example if from_bot_menu
or url
are set and peer
is not the chat with the bot.
+
+
+400
+INPUT_USER_DEACTIVATED
+The specified user was deleted.
+
+
+400
+PEER_ID_INVALID
+The provided peer id is invalid.
+
+
+400
+YOU_BLOCKED_USER
+You blocked this user.
+
+
+
Related pages
Bot menu button
Bots can choose the behavior of the menu button shown next to the text input field.
messages.sendWebViewResultMessage
Terminate webview interaction started with messages.requestWebView, sending the specified message to the chat on behalf of the user.
-Bot web apps
+Mini Apps on Telegram
Bots can offer users interactive HTML5 web apps to completely replace any website.
Deep links
Telegram clients must handle special tg:// and t.me deep links encountered in messages, link entities and in other apps by registering OS handlers.
-Forums
-Telegram allows creating forums with multiple distinct topics.
-Web Apps for Bots
+Telegram Mini Apps
messages.prolongWebView
Indicate to the server (from the user side) that the user is still using a web app.
If the method returns a QUERY_ID_INVALID
error, the webview must be closed.
diff --git a/data/web/corefork.telegram.org/method/messages.sendEncrypted.html b/data/web/corefork.telegram.org/method/messages.sendEncrypted.html
index c64861af8a..fd5d871c4f 100644
--- a/data/web/corefork.telegram.org/method/messages.sendEncrypted.html
+++ b/data/web/corefork.telegram.org/method/messages.sendEncrypted.html
@@ -129,7 +129,7 @@
The secret chat was declined.
-400
+500
MSG_WAIT_FAILED
A waiting call returned an error.
diff --git a/data/web/corefork.telegram.org/method/messages.sendMedia.html b/data/web/corefork.telegram.org/method/messages.sendMedia.html
index e39bdc68cc..54f723d1e5 100644
--- a/data/web/corefork.telegram.org/method/messages.sendMedia.html
+++ b/data/web/corefork.telegram.org/method/messages.sendMedia.html
@@ -105,19 +105,19 @@
Whether to move used stickersets to top, see here for more info on this flag »
+invert_media
+flags.16?true
+If set, any eventual webpage preview will be shown on top of the message instead of at the bottom.
+
+
peer
InputPeer
Destination
-reply_to_msg_id
-flags.0?int
-Message ID to which this message should reply to
-
-
-top_msg_id
-flags.9?int
-This field must contain the topic ID only when replying to messages in forum topics different from the "General" topic (i.e. reply_to_msg_id
is set and reply_to_msg_id != topicID
and topicID != 1
).
If the replied-to message is deleted before the method finishes execution, the value in this field will be used to send the message to the correct topic, instead of the "General" topic.
+reply_to
+flags.0?InputReplyTo
+If set, indicates that the message should be sent in reply to the specified message or story.
media
@@ -250,6 +250,11 @@
403
+CHAT_SEND_PLAIN_FORBIDDEN
+You can't send non-media (text) messages in this chat.
+
+
+403
CHAT_SEND_POLL_FORBIDDEN
You can't send polls in this chat.
@@ -355,6 +360,11 @@
400
+MESSAGE_EMPTY
+The provided message is empty.
+
+
+400
MSG_ID_INVALID
Invalid message ID provided.
@@ -535,6 +545,16 @@
400
+WEBPAGE_NOT_FOUND
+A preview for the specified webpage url
could not be generated.
+
+
+400
+WEBPAGE_URL_INVALID
+The specified webpage url
is invalid.
+
+
+400
YOU_BLOCKED_USER
You blocked this user.
@@ -544,8 +564,6 @@
Related pages
Stickers
Telegram clients support displaying static and animated stickers.
-Forums
-Telegram allows creating forums with multiple distinct topics.
Styled text with message entities
How to create styled text with message entities
Scheduled messages
diff --git a/data/web/corefork.telegram.org/method/messages.setChatWallPaper.html b/data/web/corefork.telegram.org/method/messages.setChatWallPaper.html
index ff759d8c01..7dd0c5c7a9 100644
--- a/data/web/corefork.telegram.org/method/messages.setChatWallPaper.html
+++ b/data/web/corefork.telegram.org/method/messages.setChatWallPaper.html
@@ -80,6 +80,16 @@
Flags, see TL conditional fields
+for_both
+flags.3?true
+Only for Premium users, sets the specified wallpaper for both users of the chat, without requiring confirmation from the other user.
+
+
+revert
+flags.4?true
+If we don't like the new wallpaper the other user of the chat has chosen for us using the for_both
flag, we can re-set our previous wallpaper just on our side using this flag.
+
+
peer
InputPeer
The private chat where the wallpaper will be set
@@ -123,10 +133,17 @@
WALLPAPER_INVALID
The specified wallpaper is invalid.
+
+400
+WALLPAPER_NOT_FOUND
+The specified wallpaper could not be found.
+
Bots can use this method
Related pages
+Telegram Premium
+Telegram Premium is an optional subscription service that unlocks additional exclusive client-side and API-side features, while helping support the development of the app.
Wallpapers
Telegram apps support generating, sharing and synchronizing chat backgrounds.
messageActionSetChatWallPaper
diff --git a/data/web/corefork.telegram.org/method/messages.setDefaultHistoryTTL.html b/data/web/corefork.telegram.org/method/messages.setDefaultHistoryTTL.html
index c6d1d4ecb9..4b80cf77c1 100644
--- a/data/web/corefork.telegram.org/method/messages.setDefaultHistoryTTL.html
+++ b/data/web/corefork.telegram.org/method/messages.setDefaultHistoryTTL.html
@@ -78,6 +78,23 @@
Result
+Possible errors
+
+
+
+Code
+Type
+Description
+
+
+
+
+400
+TTL_PERIOD_INVALID
+The specified TTL period is invalid.
+
+
+
Bots can use this method
diff --git a/data/web/corefork.telegram.org/method/messages.unpinAllMessages.html b/data/web/corefork.telegram.org/method/messages.unpinAllMessages.html
index 58ba97c304..1dc31b8c7a 100644
--- a/data/web/corefork.telegram.org/method/messages.unpinAllMessages.html
+++ b/data/web/corefork.telegram.org/method/messages.unpinAllMessages.html
@@ -105,7 +105,7 @@
400
CHAT_NOT_MODIFIED
-The pinned message wasn't modified.
+No changes were made to chat information because the new information you passed is identical to the current information.
diff --git a/data/web/corefork.telegram.org/method/messages.updatePinnedMessage.html b/data/web/corefork.telegram.org/method/messages.updatePinnedMessage.html
index 7e93809dc6..b7c9c68b4e 100644
--- a/data/web/corefork.telegram.org/method/messages.updatePinnedMessage.html
+++ b/data/web/corefork.telegram.org/method/messages.updatePinnedMessage.html
@@ -136,7 +136,7 @@
400
CHAT_NOT_MODIFIED
-The pinned message wasn't modified.
+No changes were made to chat information because the new information you passed is identical to the current information.
403
diff --git a/data/web/corefork.telegram.org/method/messages.uploadMedia.html b/data/web/corefork.telegram.org/method/messages.uploadMedia.html
index 50bdd5be9d..c37c415c8b 100644
--- a/data/web/corefork.telegram.org/method/messages.uploadMedia.html
+++ b/data/web/corefork.telegram.org/method/messages.uploadMedia.html
@@ -144,6 +144,11 @@
400
+FILE_PART_LENGTH_INVALID
+The length of a file part is invalid.
+
+
+400
IMAGE_PROCESS_FAILED
Failure while processing image.
diff --git a/data/web/corefork.telegram.org/method/phone.exportGroupCallInvite.html b/data/web/corefork.telegram.org/method/phone.exportGroupCallInvite.html
index a9df522c4c..fd5c570854 100644
--- a/data/web/corefork.telegram.org/method/phone.exportGroupCallInvite.html
+++ b/data/web/corefork.telegram.org/method/phone.exportGroupCallInvite.html
@@ -42,7 +42,7 @@
phone.exportGroupCallInvite
- Get an invite link for a group call or livestream
+ Get an invite link for a group call or livestream
-
diff --git a/data/web/corefork.telegram.org/method/phone.joinGroupCall.html b/data/web/corefork.telegram.org/method/phone.joinGroupCall.html
index 2a8c066503..dc6cbd6570 100644
--- a/data/web/corefork.telegram.org/method/phone.joinGroupCall.html
+++ b/data/web/corefork.telegram.org/method/phone.joinGroupCall.html
@@ -102,7 +102,7 @@
invite_hash
flags.1?string
-The invitation hash from the invite link », if provided allows speaking in a livestream or muted group chat.
+The invitation hash from the invite link », if provided allows speaking in a livestream or muted group chat.
params
diff --git a/data/web/corefork.telegram.org/method/photos.uploadContactProfilePhoto.html b/data/web/corefork.telegram.org/method/photos.uploadContactProfilePhoto.html
index 31edf5120b..a5012dbcf6 100644
--- a/data/web/corefork.telegram.org/method/photos.uploadContactProfilePhoto.html
+++ b/data/web/corefork.telegram.org/method/photos.uploadContactProfilePhoto.html
@@ -4,10 +4,10 @@
photos.uploadContactProfilePhoto
-
+
-
+
@@ -125,6 +125,11 @@
400
+CONTACT_MISSING
+The specified user is not a contact.
+
+
+400
USER_ID_INVALID
The provided user ID is invalid.
diff --git a/data/web/corefork.telegram.org/method/upload.reuploadCdnFile.html b/data/web/corefork.telegram.org/method/upload.reuploadCdnFile.html
index 712df24e2e..4c4371993f 100644
--- a/data/web/corefork.telegram.org/method/upload.reuploadCdnFile.html
+++ b/data/web/corefork.telegram.org/method/upload.reuploadCdnFile.html
@@ -92,6 +92,11 @@
+400
+CDN_METHOD_INVALID
+You can't call this method in a CDN DC.
+
+
500
CDN_UPLOAD_TIMEOUT
A server-side timeout occurred while reuploading the file to the CDN DC.
diff --git a/data/web/corefork.telegram.org/method/upload.saveFilePart.html b/data/web/corefork.telegram.org/method/upload.saveFilePart.html
index 8933cd9ff7..d8bf050513 100644
--- a/data/web/corefork.telegram.org/method/upload.saveFilePart.html
+++ b/data/web/corefork.telegram.org/method/upload.saveFilePart.html
@@ -82,7 +82,7 @@
bytes
bytes
-Binary data, contend of a part
+Binary data, content of a part
diff --git a/data/web/corefork.telegram.org/mtproto.html b/data/web/corefork.telegram.org/mtproto.html
index 4cea297895..54c5ee237d 100644
--- a/data/web/corefork.telegram.org/mtproto.html
+++ b/data/web/corefork.telegram.org/mtproto.html
@@ -110,8 +110,8 @@ Client developers are required to comply with the described here for reference) is deprecated and is currently being phased out.
Brief Component Summary
-High-Level Component (RPC Query Language/API)
-From the standpoint of the high-level component, the client and the server exchange messages inside a session. The session is attached to the client device (the application, to be more exact) rather than a specific WebSocket/http/https/tcp connection. In addition, each session is attached to a user key ID by which authorization is actually accomplished.
+High-Level Component (RPC Query Language/API)
+From the standpoint of the high-level component, the client and the server exchange messages inside a session. The session is attached to the client device (the application, to be more exact) rather than a specific websocket/http/https/tcp connection. In addition, each session is attached to a user key ID by which authorization is actually accomplished.
Several connections to a server may be open; messages may be sent in either direction through any of the connections (a response to a query is not necessarily returned through the same connection that carried the original query, although most often, that is the case; however, in no case can a message be returned through a connection belonging to a different session). When the UDP protocol is used, a response might be returned by a different IP address than the one to which the query had been sent.
There are several types of messages:
@@ -157,8 +157,8 @@ Additionally, the following transport features can be used:
Multiple transport protocols are defined:
- TCP
-- WebSocket
-- WebSocket over HTTPS
+- Websocket
+- Websocket over HTTPS
- HTTP
- HTTPS
- UDP
@@ -167,7 +167,7 @@ Multiple transport protocols are defined:
Recap
To recap, using the ISO/OSI stack as comparison:
-- Layer 7 (Application): High-level RPC API
+- Layer 7 (Application): High-level RPC API
- Layer 6 (Presentation): Type Language
- Layer 5 (Session): MTProto session
- Layer 4 (Transport):
diff --git a/data/web/corefork.telegram.org/type/InputFileLocation.html b/data/web/corefork.telegram.org/type/InputFileLocation.html
index 16f396d8fc..3d7f5dff25 100644
--- a/data/web/corefork.telegram.org/type/InputFileLocation.html
+++ b/data/web/corefork.telegram.org/type/InputFileLocation.html
@@ -92,7 +92,7 @@
inputTakeoutFileLocation
-Empty constructor for takeout
+Used to download a JSON file that will contain all personal data related to features that do not have a specialized takeout method yet, see here » for more info on the takeout API.
inputPhotoFileLocation
diff --git a/data/web/corefork.telegram.org/type/InputMedia.html b/data/web/corefork.telegram.org/type/InputMedia.html
index 387c2051f3..c769a6e101 100644
--- a/data/web/corefork.telegram.org/type/InputMedia.html
+++ b/data/web/corefork.telegram.org/type/InputMedia.html
@@ -141,6 +141,14 @@
inputMediaDice
Send a dice-based animated sticker
+
+inputMediaStory
+Forwarded story
+
+
+inputMediaWebPage
+Specifies options that will be used to generate the link preview for the caption, or even a standalone link preview without an attached message.
+
diff --git a/data/web/corefork.telegram.org/type/InputStickerSet.html b/data/web/corefork.telegram.org/type/InputStickerSet.html
index 9eade63572..435e0b6624 100644
--- a/data/web/corefork.telegram.org/type/InputStickerSet.html
+++ b/data/web/corefork.telegram.org/type/InputStickerSet.html
@@ -115,6 +115,10 @@
inputStickerSetEmojiDefaultTopicIcons
Default custom emoji stickerset for forum topic icons
+
+inputStickerSetEmojiChannelDefaultStatuses
+Default custom emoji status stickerset for channel statuses
+
diff --git a/data/web/corefork.telegram.org/type/SimpleWebViewResult.html b/data/web/corefork.telegram.org/type/SimpleWebViewResult.html
index 73a2baa9b9..5261ad55c0 100644
--- a/data/web/corefork.telegram.org/type/SimpleWebViewResult.html
+++ b/data/web/corefork.telegram.org/type/SimpleWebViewResult.html
@@ -86,7 +86,7 @@
messages.requestSimpleWebView
-Open a bot web app.
+Open a bot mini app.
diff --git a/data/web/corefork.telegram.org/type/WebPage.html b/data/web/corefork.telegram.org/type/WebPage.html
index 5893ea1b80..cd00154e2a 100644
--- a/data/web/corefork.telegram.org/type/WebPage.html
+++ b/data/web/corefork.telegram.org/type/WebPage.html
@@ -85,21 +85,6 @@
The preview of the webpage hasn't changed
-
-Methods
-
-
-
-Method
-Description
-
-
-
-
-messages.getWebPage
-Get instant view page
-
-
diff --git a/data/web/corefork.telegram.org/type/WebViewResult.html b/data/web/corefork.telegram.org/type/WebViewResult.html
index 140fa87c01..f5bfec4928 100644
--- a/data/web/corefork.telegram.org/type/WebViewResult.html
+++ b/data/web/corefork.telegram.org/type/WebViewResult.html
@@ -86,7 +86,7 @@
messages.requestWebView
-Open a bot web app, sending over user information after user confirmation.
After calling this method, until the user closes the webview, messages.prolongWebView must be called every 60 seconds.
+Open a bot mini app, sending over user information after user confirmation.
After calling this method, until the user closes the webview, messages.prolongWebView must be called every 60 seconds.
diff --git a/data/web/corefork.telegram.org/type/updates.ChannelDifference.html b/data/web/corefork.telegram.org/type/updates.ChannelDifference.html
index 0149d06cd3..a750231b6e 100644
--- a/data/web/corefork.telegram.org/type/updates.ChannelDifference.html
+++ b/data/web/corefork.telegram.org/type/updates.ChannelDifference.html
@@ -77,7 +77,7 @@
updates.channelDifferenceTooLong
-The provided pts + limit < remote pts
. Simply, there are too many updates to be fetched (more than limit
), the client has to resolve the update gap in one of the following ways (assuming the existence of a persistent database to locally store messages):
1. Delete all known messages in the chat, begin from scratch by refetching all messages manually with messages.getHistory. It is easy to implement, but suddenly disappearing messages look awful to the user.
2. Save all messages loaded in the memory until application restart, but delete all messages from the database. Messages left in the memory must be lazily updated using calls to messages.getHistory.
It will look much smoother to the user, they will need to redownload messages only after client restart.
Unsynchronized messages left in memory shouldn't be saved to the database, results of messages.getHistory and messages.getMessages must be used to update the state of deleted and edited messages left in the memory.
3. Save all messages loaded in the memory and stored in the database without saving that some messages form continuous ranges.
Messages in the database will be excluded when paginating through or searching the local message history after application restart and will be available only through individual message queries.
Every message should still be checked using messages.getHistory.
It has more disadvantages over 2) than advantages.
4. Save all messages with saving all data about continuous message ranges.
Messages from the database may be used when paginating through or searching the local message history.
The messages should still be lazily checked using messages.getHistory, but they are still available offline.
It is the best way for gaps support, but it is pretty hard to implement correctly.
It should be also noted that some messages like live location messages shouldn't be deleted.
+The provided pts + limit < remote pts
. Simply, there are too many updates to be fetched (more than limit
), the client has to resolve the update gap in one of the following ways (assuming the existence of a persistent database to locally store messages):
1. Delete all known messages in the chat, begin from scratch by refetching all messages manually with messages.getHistory. It is easy to implement, but suddenly disappearing messages look awful to the user.
2. Save all messages loaded in the memory until application restart, but delete all messages from the database. Messages left in the memory must be lazily updated using calls to messages.getHistory.
It will look much smoother to the user, they will need to redownload messages only after client restart.
Unsynchronized messages left in memory shouldn't be saved to the database, results of messages.getHistory and messages.getMessages must be used to update the state of deleted and edited messages left in the memory.
3. Save all messages loaded in the memory and stored in the database without saving that some messages form continuous ranges.
Messages in the database will be excluded when paginating through or searching the local message history after application restart and will be available only through individual message queries.
Every message should still be checked using messages.getHistory.
It has more disadvantages over 2) than advantages.
4. Save all messages with saving all data about continuous message ranges.
Messages from the database may be used when paginating through or searching the local message history.
The messages should still be lazily checked using messages.getHistory, but they are still available offline.
It is the best way for gaps support, but it is pretty hard to implement correctly.
It should be also noted that some messages like live location messages shouldn't be deleted.
updates.channelDifference