telegram-crawler/data/web/core.telegram.org/api/reactions.html
2024-09-23 18:02:35 +00:00

263 lines
38 KiB
HTML
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html class="">
<head>
<meta charset="utf-8">
<title>Message reactions</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta property="description" content="Telegram allows users to react on any message using specific emojis, triggering cute lottie animations.">
<meta property="og:title" content="Message reactions">
<meta property="og:image" content="">
<meta property="og:description" content="Telegram allows users to react on any message using specific emojis, triggering cute lottie animations.">
<link rel="icon" type="image/svg+xml" href="/img/website_icon.svg?4">
<link rel="apple-touch-icon" sizes="180x180" href="/img/apple-touch-icon.png">
<link rel="icon" type="image/png" sizes="32x32" href="/img/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="16x16" href="/img/favicon-16x16.png">
<link rel="alternate icon" href="/img/favicon.ico" type="image/x-icon" />
<link href="/css/bootstrap.min.css?3" rel="stylesheet">
<link href="/css/telegram.css?241" rel="stylesheet" media="screen">
<style>
</style>
</head>
<body class="preload">
<div class="dev_page_wrap">
<div class="dev_page_head navbar navbar-static-top navbar-tg">
<div class="navbar-inner">
<div class="container clearfix">
<ul class="nav navbar-nav navbar-right hidden-xs"><li class="navbar-twitter"><a href="https://twitter.com/telegram" target="_blank" data-track="Follow/Twitter" onclick="trackDlClick(this, event)"><i class="icon icon-twitter"></i><span> Twitter</span></a></li></ul>
<ul class="nav navbar-nav">
<li><a href="//telegram.org/">Home</a></li>
<li class="hidden-xs"><a href="//telegram.org/faq">FAQ</a></li>
<li class="hidden-xs"><a href="//telegram.org/apps">Apps</a></li>
<li class="active"><a href="/api">API</a></li>
<li class=""><a href="/mtproto">Protocol</a></li>
<li class=""><a href="/schema">Schema</a></li>
</ul>
</div>
</div>
</div>
<div class="container clearfix">
<div class="dev_page">
<div id="dev_page_content_wrap" class=" ">
<div class="dev_page_bread_crumbs"><ul class="breadcrumb clearfix"><li><a href="/api" >API</a></li><i class="icon icon-breadcrumb-divider"></i><li><a href="/api/reactions" >Message reactions</a></li></ul></div>
<h1 id="dev_page_title">Message reactions</h1>
<div id="dev_page_content"><!-- scroll_nav -->
<p>Telegram allows users to react on any message using specific emojis, triggering cute lottie animations. </p>
<h3><a class="anchor" href="#react-to-a-message" id="react-to-a-message" name="react-to-a-message"><i class="anchor-icon"></i></a>React to a message</h3>
<pre><code><a href='/constructor/reactionEmoji'>reactionEmoji</a>#1b2286b8 emoticon:<a href='/type/string'>string</a> = <a href='/type/Reaction'>Reaction</a>;
<a href='/constructor/reactionCustomEmoji'>reactionCustomEmoji</a>#8935fc73 document_id:<a href='/type/long'>long</a> = <a href='/type/Reaction'>Reaction</a>;
<a href='/constructor/reactionCount'>reactionCount</a>#a3d1cb80 flags:<a href='/type/%23'>#</a> chosen_order:flags.0?<a href='/type/int'>int</a> reaction:<a href='/type/Reaction'>Reaction</a> count:<a href='/type/int'>int</a> = <a href='/type/ReactionCount'>ReactionCount</a>;
<a href='/constructor/messagePeerReaction'>messagePeerReaction</a>#8c79b63c flags:<a href='/type/%23'>#</a> big:flags.0?<a href='/constructor/true'>true</a> unread:flags.1?<a href='/constructor/true'>true</a> my:flags.2?<a href='/constructor/true'>true</a> peer_id:<a href='/type/Peer'>Peer</a> date:<a href='/type/int'>int</a> reaction:<a href='/type/Reaction'>Reaction</a> = <a href='/type/MessagePeerReaction'>MessagePeerReaction</a>;
<a href='/constructor/messageReactions'>messageReactions</a>#4f2b9479 flags:<a href='/type/%23'>#</a> min:flags.0?<a href='/constructor/true'>true</a> can_see_list:flags.2?<a href='/constructor/true'>true</a> reactions_as_tags:flags.3?<a href='/constructor/true'>true</a> results:<a href='/type/Vector%20t'>Vector</a>&lt;<a href='/type/ReactionCount'>ReactionCount</a>&gt; recent_reactions:flags.1?<a href='/type/Vector%20t'>Vector</a>&lt;<a href='/type/MessagePeerReaction'>MessagePeerReaction</a>&gt; = <a href='/type/MessageReactions'>MessageReactions</a>;
<a href='/constructor/message'>message</a>#94345242 flags:<a href='/type/%23'>#</a> out:flags.1?<a href='/constructor/true'>true</a> mentioned:flags.4?<a href='/constructor/true'>true</a> media_unread:flags.5?<a href='/constructor/true'>true</a> silent:flags.13?<a href='/constructor/true'>true</a> post:flags.14?<a href='/constructor/true'>true</a> from_scheduled:flags.18?<a href='/constructor/true'>true</a> legacy:flags.19?<a href='/constructor/true'>true</a> edit_hide:flags.21?<a href='/constructor/true'>true</a> pinned:flags.24?<a href='/constructor/true'>true</a> noforwards:flags.26?<a href='/constructor/true'>true</a> invert_media:flags.27?<a href='/constructor/true'>true</a> flags2:<a href='/type/%23'>#</a> offline:flags2.1?<a href='/constructor/true'>true</a> id:<a href='/type/int'>int</a> from_id:flags.8?<a href='/type/Peer'>Peer</a> from_boosts_applied:flags.29?<a href='/type/int'>int</a> peer_id:<a href='/type/Peer'>Peer</a> saved_peer_id:flags.28?<a href='/type/Peer'>Peer</a> fwd_from:flags.2?<a href='/type/MessageFwdHeader'>MessageFwdHeader</a> via_bot_id:flags.11?<a href='/type/long'>long</a> via_business_bot_id:flags2.0?<a href='/type/long'>long</a> reply_to:flags.3?<a href='/type/MessageReplyHeader'>MessageReplyHeader</a> date:<a href='/type/int'>int</a> message:<a href='/type/string'>string</a> media:flags.9?<a href='/type/MessageMedia'>MessageMedia</a> reply_markup:flags.6?<a href='/type/ReplyMarkup'>ReplyMarkup</a> entities:flags.7?<a href='/type/Vector%20t'>Vector</a>&lt;<a href='/type/MessageEntity'>MessageEntity</a>&gt; views:flags.10?<a href='/type/int'>int</a> forwards:flags.10?<a href='/type/int'>int</a> replies:flags.23?<a href='/type/MessageReplies'>MessageReplies</a> edit_date:flags.15?<a href='/type/int'>int</a> post_author:flags.16?<a href='/type/string'>string</a> grouped_id:flags.17?<a href='/type/long'>long</a> reactions:flags.20?<a href='/type/MessageReactions'>MessageReactions</a> restriction_reason:flags.22?<a href='/type/Vector%20t'>Vector</a>&lt;<a href='/type/RestrictionReason'>RestrictionReason</a>&gt; ttl_period:flags.25?<a href='/type/int'>int</a> quick_reply_shortcut_id:flags.30?<a href='/type/int'>int</a> effect:flags2.2?<a href='/type/long'>long</a> factcheck:flags2.3?<a href='/type/FactCheck'>FactCheck</a> = <a href='/type/Message'>Message</a>;
<a href='/constructor/updateMessageReactions'>updateMessageReactions</a>#5e1b3cb8 flags:<a href='/type/%23'>#</a> peer:<a href='/type/Peer'>Peer</a> msg_id:<a href='/type/int'>int</a> top_msg_id:flags.0?<a href='/type/int'>int</a> reactions:<a href='/type/MessageReactions'>MessageReactions</a> = <a href='/type/Update'>Update</a>;
<a href='/constructor/messages.messageReactionsList'>messages.messageReactionsList</a>#31bd492d flags:<a href='/type/%23'>#</a> count:<a href='/type/int'>int</a> reactions:<a href='/type/Vector%20t'>Vector</a>&lt;<a href='/type/MessagePeerReaction'>MessagePeerReaction</a>&gt; chats:<a href='/type/Vector%20t'>Vector</a>&lt;<a href='/type/Chat'>Chat</a>&gt; users:<a href='/type/Vector%20t'>Vector</a>&lt;<a href='/type/User'>User</a>&gt; next_offset:flags.0?<a href='/type/string'>string</a> = <a href='/type/messages.MessageReactionsList'>messages.MessageReactionsList</a>;
---functions---
<a href='/method/messages.sendReaction'>messages.sendReaction</a>#d30d78d4 flags:<a href='/type/%23'>#</a> big:flags.1?<a href='/constructor/true'>true</a> add_to_recent:flags.2?<a href='/constructor/true'>true</a> peer:<a href='/type/InputPeer'>InputPeer</a> msg_id:<a href='/type/int'>int</a> reaction:flags.0?<a href='/type/Vector%20t'>Vector</a>&lt;<a href='/type/Reaction'>Reaction</a>&gt; = <a href='/type/Updates'>Updates</a>;
<a href='/method/messages.getMessagesReactions'>messages.getMessagesReactions</a>#8bba90e6 peer:<a href='/type/InputPeer'>InputPeer</a> id:<a href='/type/Vector%20t'>Vector</a>&lt;<a href='/type/int'>int</a>&gt; = <a href='/type/Updates'>Updates</a>;
<a href='/method/messages.getMessageReactionsList'>messages.getMessageReactionsList</a>#461b3f48 flags:<a href='/type/%23'>#</a> peer:<a href='/type/InputPeer'>InputPeer</a> id:<a href='/type/int'>int</a> reaction:flags.0?<a href='/type/Reaction'>Reaction</a> offset:flags.1?<a href='/type/string'>string</a> limit:<a href='/type/int'>int</a> = <a href='/type/messages.MessageReactionsList'>messages.MessageReactionsList</a>;
<a href='/method/messages.getUnreadReactions'>messages.getUnreadReactions</a>#3223495b flags:<a href='/type/%23'>#</a> peer:<a href='/type/InputPeer'>InputPeer</a> top_msg_id:flags.0?<a href='/type/int'>int</a> offset_id:<a href='/type/int'>int</a> add_offset:<a href='/type/int'>int</a> limit:<a href='/type/int'>int</a> max_id:<a href='/type/int'>int</a> min_id:<a href='/type/int'>int</a> = <a href='/type/messages.Messages'>messages.Messages</a>;
<a href='/method/messages.readReactions'>messages.readReactions</a>#54aa7f8e flags:<a href='/type/%23'>#</a> peer:<a href='/type/InputPeer'>InputPeer</a> top_msg_id:flags.0?<a href='/type/int'>int</a> = <a href='/type/messages.AffectedHistory'>messages.AffectedHistory</a>;
<a href='/method/messages.reportReaction'>messages.reportReaction</a>#3f64c076 peer:<a href='/type/InputPeer'>InputPeer</a> id:<a href='/type/int'>int</a> reaction_peer:<a href='/type/InputPeer'>InputPeer</a> = <a href='/type/Bool'>Bool</a>;</code></pre>
<p>Users can react to a message with one or more reactions using <a href="/method/messages.sendReaction">messages.sendReaction</a>.<br>
After sending the reaction, the <code>chosen_order</code> field of <a href="/constructor/reactionCount">reactionCount</a> (in <a href="/constructor/messageReactions">messageReactions</a>) will be set for the reaction. The integer value indicates when was the reaction added: the bigger the value, the newer the reaction, use this value to appropriately sort the <code>messages.sendReaction:reaction</code> vector when adding new reactions.<br>
Reactions should be sent in <strong>ascending order</strong> (new reactions at the end in the <code>messages.sendReaction:reaction</code> vector), and when adding more reactions to the same message, older reactions should be removed to keep the total number of sent reactions within <a href="/api/config#reactions-user-max-default">reactions_user_max_default</a>/<a href="/api/config#reactions-user-max-premium">reactions_user_max_premium</a> reactions.<br>
The <a href="/api/config#reactions-uniq-max">reactions_uniq_max</a> configuration field also indicates the maximum number of unique reactions that can be added to a message: for example, if there are 2000 <img class="emoji" src="//telegram.org/img/emoji/40/F09F918D.png" width="20" height="20" alt="👍" /> and 1000 custom emoji <img class="emoji" src="//telegram.org/img/emoji/40/F09F9881.png" width="20" height="20" alt="😁" /> reactions and reactions_uniq_max = 2, you can't add a <img class="emoji" src="//telegram.org/img/emoji/40/F09F918E.png" width="20" height="20" alt="👎" /> reaction, because that would raise the number of unique reactions to 3 &gt; 2. </p>
<p>Chats and channels may also configure a custom limit of unique reactions; this info will be available to users in <a href="/constructor/channelFull">channelFull</a>.<code>reactions_limit</code> and <a href="/constructor/chatFull">chatFull</a>.<code>reactions_limit</code>. </p>
<p>The <code>big</code> flag can be optionally set to elicit a bigger reaction.<br>
Send a <a href="/constructor/reactionEmoji">reactionEmoji</a> to react using a normal emoji, and a <a href="/constructor/reactionCustomEmoji">reactionCustomEmoji</a> to react using a <a href="/api/custom-emoji">custom emoji</a>.<br>
Message authors will receive an <a href="/constructor/updateMessageReactions">updateMessageReactions</a> update when a user reacts to their message, if enabled as specified <a href="#notifications-about-reactions">here »</a>. </p>
<p><a href="/method/messages.getMessagesReactions">messages.getMessagesReactions</a> can be used to fetch a full list of reactions for one or more messages.<br>
Apps should short-poll reactions for visible messages (that weren't sent by the user) once every 15-30 seconds, but only if <code>message.reactions</code> is set. </p>
<p>In groups, <a href="/method/messages.getMessageReactionsList">messages.getMessageReactionsList</a> can be used to fetch the reaction list, along with the sender of each reaction.<br>
In groups, <a href="/method/messages.reportReaction">messages.reportReaction</a> can be used to report a certain <a href="/api/custom-emoji">custom emoji</a> reaction, specifying the <code>peer</code>, the message <code>id</code> and the user that sent the reaction (<code>reaction_peer</code>). </p>
<p><a href="/method/messages.getUnreadReactions">messages.getUnreadReactions</a> is used to fetch messages with unread reactions.<br>
Use <a href="/method/messages.readReactions">messages.readReactions</a> to mark all reactions as read in a certain chat.</p>
<p>For <a href="/api/saved-messages">saved messages</a>, if the <code>reactions_as_tags</code> flag of <a href="/constructor/messageReactions">messageReactions</a> is set, or if there are no reactions, all present and future reactions should be treated as <a href="/api/saved-messages#tags">message tags, see here » for more info</a>.</p>
<h3><a class="anchor" href="#react-to-a-story" id="react-to-a-story" name="react-to-a-story"><i class="anchor-icon"></i></a>React to a story</h3>
<p>See <a href="/api/stories#reactions">here »</a> for more info on how to react to a story.</p>
<h3><a class="anchor" href="#notifications-about-reactions" id="notifications-about-reactions" name="notifications-about-reactions"><i class="anchor-icon"></i></a>Notifications about reactions</h3>
<pre><code><a href='/constructor/reactionNotificationsFromContacts'>reactionNotificationsFromContacts</a>#bac3a61a = <a href='/type/ReactionNotificationsFrom'>ReactionNotificationsFrom</a>;
<a href='/constructor/reactionNotificationsFromAll'>reactionNotificationsFromAll</a>#4b9e22a0 = <a href='/type/ReactionNotificationsFrom'>ReactionNotificationsFrom</a>;
<a href='/constructor/reactionsNotifySettings'>reactionsNotifySettings</a>#56e34970 flags:<a href='/type/%23'>#</a> messages_notify_from:flags.0?<a href='/type/ReactionNotificationsFrom'>ReactionNotificationsFrom</a> stories_notify_from:flags.1?<a href='/type/ReactionNotificationsFrom'>ReactionNotificationsFrom</a> sound:<a href='/type/NotificationSound'>NotificationSound</a> show_previews:<a href='/type/Bool'>Bool</a> = <a href='/type/ReactionsNotifySettings'>ReactionsNotifySettings</a>;
<a href='/constructor/updateNewStoryReaction'>updateNewStoryReaction</a>#1824e40b story_id:<a href='/type/int'>int</a> peer:<a href='/type/Peer'>Peer</a> reaction:<a href='/type/Reaction'>Reaction</a> = <a href='/type/Update'>Update</a>;
<a href='/constructor/updateMessageReactions'>updateMessageReactions</a>#5e1b3cb8 flags:<a href='/type/%23'>#</a> peer:<a href='/type/Peer'>Peer</a> msg_id:<a href='/type/int'>int</a> top_msg_id:flags.0?<a href='/type/int'>int</a> reactions:<a href='/type/MessageReactions'>MessageReactions</a> = <a href='/type/Update'>Update</a>;
---functions---
<a href='/method/account.setReactionsNotifySettings'>account.setReactionsNotifySettings</a>#316ce548 settings:<a href='/type/ReactionsNotifySettings'>ReactionsNotifySettings</a> = <a href='/type/ReactionsNotifySettings'>ReactionsNotifySettings</a>;
<a href='/method/account.getReactionsNotifySettings'>account.getReactionsNotifySettings</a>#6dd654c = <a href='/type/ReactionsNotifySettings'>ReactionsNotifySettings</a>;</code></pre>
<p>Users may choose to receive notifications about reactions sent to their messages and stories by any user, only by contacts, or completely disable them. </p>
<p>These reaction notification settings may be changed using <a href="/method/account.setReactionsNotifySettings">account.setReactionsNotifySettings</a>, and fetched using <a href="/method/account.getReactionsNotifySettings">account.getReactionsNotifySettings</a>. </p>
<p>A custom <a href="/api/ringtones">notification sound »</a> may also be set for reactions in the <code>sound</code> field of the <a href="/constructor/reactionsNotifySettings">reactionsNotifySettings</a>. </p>
<p>If <code>show_previews=false</code>, <a href="/api/push-updates">push notifications »</a> about message/story reactions will only be of type <code>REACT_HIDDEN</code>/<code>REACT_STORY_HIDDEN</code>, without any information about the reacted-to story or the reaction itself. </p>
<h3><a class="anchor" href="#animated-normal-emojis" id="animated-normal-emojis" name="animated-normal-emojis"><i class="anchor-icon"></i></a>Animated normal emojis</h3>
<pre><code><a href='/constructor/reactionEmoji'>reactionEmoji</a>#1b2286b8 emoticon:<a href='/type/string'>string</a> = <a href='/type/Reaction'>Reaction</a>;
<a href='/constructor/availableReaction'>availableReaction</a>#c077ec01 flags:<a href='/type/%23'>#</a> inactive:flags.0?<a href='/constructor/true'>true</a> premium:flags.2?<a href='/constructor/true'>true</a> reaction:<a href='/type/string'>string</a> title:<a href='/type/string'>string</a> static_icon:<a href='/type/Document'>Document</a> appear_animation:<a href='/type/Document'>Document</a> select_animation:<a href='/type/Document'>Document</a> activate_animation:<a href='/type/Document'>Document</a> effect_animation:<a href='/type/Document'>Document</a> around_animation:flags.1?<a href='/type/Document'>Document</a> center_icon:flags.1?<a href='/type/Document'>Document</a> = <a href='/type/AvailableReaction'>AvailableReaction</a>;
<a href='/constructor/messages.availableReactionsNotModified'>messages.availableReactionsNotModified</a>#9f071957 = <a href='/type/messages.AvailableReactions'>messages.AvailableReactions</a>;
<a href='/constructor/messages.availableReactions'>messages.availableReactions</a>#768e3aad hash:<a href='/type/int'>int</a> reactions:<a href='/type/Vector%20t'>Vector</a>&lt;<a href='/type/AvailableReaction'>AvailableReaction</a>&gt; = <a href='/type/messages.AvailableReactions'>messages.AvailableReactions</a>;
<a href='/constructor/inputStickerSetEmojiGenericAnimations'>inputStickerSetEmojiGenericAnimations</a>#04c4d4ce = <a href='/type/InputStickerSet'>InputStickerSet</a>;
---functions---
<a href='/method/messages.getAvailableReactions'>messages.getAvailableReactions</a>#18dea0ac hash:<a href='/type/int'>int</a> = <a href='/type/messages.AvailableReactions'>messages.AvailableReactions</a>;</code></pre>
<p><a href="/method/messages.getAvailableReactions">messages.getAvailableReactions</a> can be used to fetch a list of animations to play when reacting with a normal <a href="/constructor/reactionEmoji">reactionEmoji</a>.<br>
The returned vector of <a href="/constructor/availableReaction">availableReaction</a> constructors contains multiple fields with lottie <a href="/api/stickers">animated stickers</a> and simple images that should be positioned, displayed and played appropriately in the UI, as described in the <a href="/constructor/availableReaction">constructor page »</a>. </p>
<p>Users can also react using <a href="/api/custom-emoji">custom emojis »</a>, in which case the <code>appear_animation</code> and <code>select_animation</code> are equal to the custom emoji itself that can be fetched <a href="/api/custom-emoji">as described here »</a>.<br>
For custom emojis, the <code>effect_animation</code> must be equal to the <code>effect_animation</code> of the associated normal emoji: if no effect animation is present for the normal emoji associated to a custom emoji, a random <a href="/api/stickers">animated sticker</a> should be played from the <a href="/constructor/inputStickerSetEmojiGenericAnimations">inputStickerSetEmojiGenericAnimations</a> stickerset, fetched using <a href="/method/messages.getStickerSet">messages.getStickerSet</a> as described <a href="/api/stickers#stickersets">here »</a>.</p>
<h3><a class="anchor" href="#available-reactions-in-group-or-channel" id="available-reactions-in-group-or-channel" name="available-reactions-in-group-or-channel"><i class="anchor-icon"></i></a>Available reactions in group or channel</h3>
<pre><code><a href='/constructor/reactionEmoji'>reactionEmoji</a>#1b2286b8 emoticon:<a href='/type/string'>string</a> = <a href='/type/Reaction'>Reaction</a>;
<a href='/constructor/reactionCustomEmoji'>reactionCustomEmoji</a>#8935fc73 document_id:<a href='/type/long'>long</a> = <a href='/type/Reaction'>Reaction</a>;
<a href='/constructor/chatReactionsNone'>chatReactionsNone</a>#eafc32bc = <a href='/type/ChatReactions'>ChatReactions</a>;
<a href='/constructor/chatReactionsAll'>chatReactionsAll</a>#52928bca flags:<a href='/type/%23'>#</a> allow_custom:flags.0?<a href='/constructor/true'>true</a> = <a href='/type/ChatReactions'>ChatReactions</a>;
<a href='/constructor/chatReactionsSome'>chatReactionsSome</a>#661d4037 reactions:<a href='/type/Vector%20t'>Vector</a>&lt;<a href='/type/Reaction'>Reaction</a>&gt; = <a href='/type/ChatReactions'>ChatReactions</a>;
<a href='/constructor/chatFull'>chatFull</a>#2633421b flags:<a href='/type/%23'>#</a> can_set_username:flags.7?<a href='/constructor/true'>true</a> has_scheduled:flags.8?<a href='/constructor/true'>true</a> translations_disabled:flags.19?<a href='/constructor/true'>true</a> id:<a href='/type/long'>long</a> about:<a href='/type/string'>string</a> participants:<a href='/type/ChatParticipants'>ChatParticipants</a> chat_photo:flags.2?<a href='/type/Photo'>Photo</a> notify_settings:<a href='/type/PeerNotifySettings'>PeerNotifySettings</a> exported_invite:flags.13?<a href='/type/ExportedChatInvite'>ExportedChatInvite</a> bot_info:flags.3?<a href='/type/Vector%20t'>Vector</a>&lt;<a href='/type/BotInfo'>BotInfo</a>&gt; pinned_msg_id:flags.6?<a href='/type/int'>int</a> folder_id:flags.11?<a href='/type/int'>int</a> call:flags.12?<a href='/type/InputGroupCall'>InputGroupCall</a> ttl_period:flags.14?<a href='/type/int'>int</a> groupcall_default_join_as:flags.15?<a href='/type/Peer'>Peer</a> theme_emoticon:flags.16?<a href='/type/string'>string</a> requests_pending:flags.17?<a href='/type/int'>int</a> recent_requesters:flags.17?<a href='/type/Vector%20t'>Vector</a>&lt;<a href='/type/long'>long</a>&gt; available_reactions:flags.18?<a href='/type/ChatReactions'>ChatReactions</a> reactions_limit:flags.20?<a href='/type/int'>int</a> = <a href='/type/ChatFull'>ChatFull</a>;
<a href='/constructor/channelFull'>channelFull</a>#bbab348d flags:<a href='/type/%23'>#</a> can_view_participants:flags.3?<a href='/constructor/true'>true</a> can_set_username:flags.6?<a href='/constructor/true'>true</a> can_set_stickers:flags.7?<a href='/constructor/true'>true</a> hidden_prehistory:flags.10?<a href='/constructor/true'>true</a> can_set_location:flags.16?<a href='/constructor/true'>true</a> has_scheduled:flags.19?<a href='/constructor/true'>true</a> can_view_stats:flags.20?<a href='/constructor/true'>true</a> blocked:flags.22?<a href='/constructor/true'>true</a> flags2:<a href='/type/%23'>#</a> can_delete_channel:flags2.0?<a href='/constructor/true'>true</a> antispam:flags2.1?<a href='/constructor/true'>true</a> participants_hidden:flags2.2?<a href='/constructor/true'>true</a> translations_disabled:flags2.3?<a href='/constructor/true'>true</a> stories_pinned_available:flags2.5?<a href='/constructor/true'>true</a> view_forum_as_messages:flags2.6?<a href='/constructor/true'>true</a> restricted_sponsored:flags2.11?<a href='/constructor/true'>true</a> can_view_revenue:flags2.12?<a href='/constructor/true'>true</a> paid_media_allowed:flags2.14?<a href='/constructor/true'>true</a> can_view_stars_revenue:flags2.15?<a href='/constructor/true'>true</a> id:<a href='/type/long'>long</a> about:<a href='/type/string'>string</a> participants_count:flags.0?<a href='/type/int'>int</a> admins_count:flags.1?<a href='/type/int'>int</a> kicked_count:flags.2?<a href='/type/int'>int</a> banned_count:flags.2?<a href='/type/int'>int</a> online_count:flags.13?<a href='/type/int'>int</a> read_inbox_max_id:<a href='/type/int'>int</a> read_outbox_max_id:<a href='/type/int'>int</a> unread_count:<a href='/type/int'>int</a> chat_photo:<a href='/type/Photo'>Photo</a> notify_settings:<a href='/type/PeerNotifySettings'>PeerNotifySettings</a> exported_invite:flags.23?<a href='/type/ExportedChatInvite'>ExportedChatInvite</a> bot_info:<a href='/type/Vector%20t'>Vector</a>&lt;<a href='/type/BotInfo'>BotInfo</a>&gt; migrated_from_chat_id:flags.4?<a href='/type/long'>long</a> migrated_from_max_id:flags.4?<a href='/type/int'>int</a> pinned_msg_id:flags.5?<a href='/type/int'>int</a> stickerset:flags.8?<a href='/type/StickerSet'>StickerSet</a> available_min_id:flags.9?<a href='/type/int'>int</a> folder_id:flags.11?<a href='/type/int'>int</a> linked_chat_id:flags.14?<a href='/type/long'>long</a> location:flags.15?<a href='/type/ChannelLocation'>ChannelLocation</a> slowmode_seconds:flags.17?<a href='/type/int'>int</a> slowmode_next_send_date:flags.18?<a href='/type/int'>int</a> stats_dc:flags.12?<a href='/type/int'>int</a> pts:<a href='/type/int'>int</a> call:flags.21?<a href='/type/InputGroupCall'>InputGroupCall</a> ttl_period:flags.24?<a href='/type/int'>int</a> pending_suggestions:flags.25?<a href='/type/Vector%20t'>Vector</a>&lt;<a href='/type/string'>string</a>&gt; groupcall_default_join_as:flags.26?<a href='/type/Peer'>Peer</a> theme_emoticon:flags.27?<a href='/type/string'>string</a> requests_pending:flags.28?<a href='/type/int'>int</a> recent_requesters:flags.28?<a href='/type/Vector%20t'>Vector</a>&lt;<a href='/type/long'>long</a>&gt; default_send_as:flags.29?<a href='/type/Peer'>Peer</a> available_reactions:flags.30?<a href='/type/ChatReactions'>ChatReactions</a> reactions_limit:flags2.13?<a href='/type/int'>int</a> stories:flags2.4?<a href='/type/PeerStories'>PeerStories</a> wallpaper:flags2.7?<a href='/type/WallPaper'>WallPaper</a> boosts_applied:flags2.8?<a href='/type/int'>int</a> boosts_unrestrict:flags2.9?<a href='/type/int'>int</a> emojiset:flags2.10?<a href='/type/StickerSet'>StickerSet</a> = <a href='/type/ChatFull'>ChatFull</a>;
<a href='/constructor/channelAdminLogEventActionChangeAvailableReactions'>channelAdminLogEventActionChangeAvailableReactions</a>#be4e0ef8 prev_value:<a href='/type/ChatReactions'>ChatReactions</a> new_value:<a href='/type/ChatReactions'>ChatReactions</a> = <a href='/type/ChannelAdminLogEventAction'>ChannelAdminLogEventAction</a>;
---functions---
<a href='/method/messages.setChatAvailableReactions'>messages.setChatAvailableReactions</a>#5a150bd4 flags:<a href='/type/%23'>#</a> peer:<a href='/type/InputPeer'>InputPeer</a> available_reactions:<a href='/type/ChatReactions'>ChatReactions</a> reactions_limit:flags.0?<a href='/type/int'>int</a> = <a href='/type/Updates'>Updates</a>;</code></pre>
<p>Chat and channel administrators can use <a href="/method/messages.setChatAvailableReactions">messages.setChatAvailableReactions</a> to restrict the set of reactions that can be used in a chat or channel, see <a href="/type/ChatReactions">here »</a> for a list of possible configuration values.<br>
The set <a href="/type/ChatReactions">ChatReactions</a> constructor can then be fetched by users using <a href="/method/messages.getFullChat">messages.getFullChat</a>, and will be contained in the <code>available_reactions</code> field of the returned full info constructor. </p>
<p>The <code>reactions_limit</code> limit flag may be used to impose a custom limit of unique reactions (i.e. a customizable version of <a href="/api/config#reactions-uniq-max">appConfig.reactions_uniq_max</a>); this field and the other info set by the method will then be available to users in <a href="/constructor/channelFull">channelFull</a> and <a href="/constructor/chatFull">chatFull</a>. </p>
<p>The <a href="/api/config#reactions-in-chat-max">reactions_in_chat_max</a> configuration field indicates the maximum number of reactions that can be specified in <a href="/constructor/chatReactionsSome">chatReactionsSome</a>.</p>
<h3><a class="anchor" href="#recent-reactions" id="recent-reactions" name="recent-reactions"><i class="anchor-icon"></i></a>Recent reactions</h3>
<pre><code><a href='/constructor/reactionEmoji'>reactionEmoji</a>#1b2286b8 emoticon:<a href='/type/string'>string</a> = <a href='/type/Reaction'>Reaction</a>;
<a href='/constructor/reactionCustomEmoji'>reactionCustomEmoji</a>#8935fc73 document_id:<a href='/type/long'>long</a> = <a href='/type/Reaction'>Reaction</a>;
<a href='/constructor/messages.reactionsNotModified'>messages.reactionsNotModified</a>#b06fdbdf = <a href='/type/messages.Reactions'>messages.Reactions</a>;
<a href='/constructor/messages.reactions'>messages.reactions</a>#eafdf716 hash:<a href='/type/long'>long</a> reactions:<a href='/type/Vector%20t'>Vector</a>&lt;<a href='/type/Reaction'>Reaction</a>&gt; = <a href='/type/messages.Reactions'>messages.Reactions</a>;
<a href='/constructor/updateRecentReactions'>updateRecentReactions</a>#6f7863f4 = <a href='/type/Update'>Update</a>;
---functions---
<a href='/method/messages.getRecentReactions'>messages.getRecentReactions</a>#39461db2 limit:<a href='/type/int'>int</a> hash:<a href='/type/long'>long</a> = <a href='/type/messages.Reactions'>messages.Reactions</a>;
<a href='/method/messages.clearRecentReactions'>messages.clearRecentReactions</a>#9dfeefb4 = <a href='/type/Bool'>Bool</a>;
<a href='/method/messages.sendReaction'>messages.sendReaction</a>#d30d78d4 flags:<a href='/type/%23'>#</a> big:flags.1?<a href='/constructor/true'>true</a> add_to_recent:flags.2?<a href='/constructor/true'>true</a> peer:<a href='/type/InputPeer'>InputPeer</a> msg_id:<a href='/type/int'>int</a> reaction:flags.0?<a href='/type/Vector%20t'>Vector</a>&lt;<a href='/type/Reaction'>Reaction</a>&gt; = <a href='/type/Updates'>Updates</a>;</code></pre>
<p>Recently used reactions can be fetched using <a href="/method/messages.getRecentReactions">messages.getRecentReactions</a>: the list can be cleared using <a href="/method/messages.clearRecentReactions">messages.clearRecentReactions</a>.<br>
The <code>add_to_recent</code> flag of <a href="/method/messages.sendReaction">messages.sendReaction</a> must be set iff the user reacts to a message using the extended reactions menu (as opposed to the reaction bubble): this will update the recent reaction list, triggering an <a href="/constructor/updateRecentReactions">updateRecentReactions</a> update on other logged-in sessions: this update should trigger a new call to <a href="/method/messages.getRecentReactions">messages.getRecentReactions</a> to refresh the locally cached list. </p>
<h3><a class="anchor" href="#featured-reactions" id="featured-reactions" name="featured-reactions"><i class="anchor-icon"></i></a>Featured reactions</h3>
<pre><code><a href='/constructor/reactionEmoji'>reactionEmoji</a>#1b2286b8 emoticon:<a href='/type/string'>string</a> = <a href='/type/Reaction'>Reaction</a>;
<a href='/constructor/reactionCustomEmoji'>reactionCustomEmoji</a>#8935fc73 document_id:<a href='/type/long'>long</a> = <a href='/type/Reaction'>Reaction</a>;
<a href='/constructor/messages.reactionsNotModified'>messages.reactionsNotModified</a>#b06fdbdf = <a href='/type/messages.Reactions'>messages.Reactions</a>;
<a href='/constructor/messages.reactions'>messages.reactions</a>#eafdf716 hash:<a href='/type/long'>long</a> reactions:<a href='/type/Vector%20t'>Vector</a>&lt;<a href='/type/Reaction'>Reaction</a>&gt; = <a href='/type/messages.Reactions'>messages.Reactions</a>;
---functions---
<a href='/method/messages.getTopReactions'>messages.getTopReactions</a>#bb8125ba limit:<a href='/type/int'>int</a> hash:<a href='/type/long'>long</a> = <a href='/type/messages.Reactions'>messages.Reactions</a>;</code></pre>
<p>A list of featured emoji and <a href="/api/custom-emoji">custom emoji</a> reactions can be fetched using <a href="/method/messages.getTopReactions">messages.getTopReactions</a>. </p>
<h3><a class="anchor" href="#set-default-reaction" id="set-default-reaction" name="set-default-reaction"><i class="anchor-icon"></i></a>Set default reaction</h3>
<pre><code><a href='/constructor/reactionEmoji'>reactionEmoji</a>#1b2286b8 emoticon:<a href='/type/string'>string</a> = <a href='/type/Reaction'>Reaction</a>;
<a href='/constructor/reactionCustomEmoji'>reactionCustomEmoji</a>#8935fc73 document_id:<a href='/type/long'>long</a> = <a href='/type/Reaction'>Reaction</a>;
<a href='/constructor/config'>config</a>#cc1a241e flags:<a href='/type/%23'>#</a> default_p2p_contacts:flags.3?<a href='/constructor/true'>true</a> preload_featured_stickers:flags.4?<a href='/constructor/true'>true</a> revoke_pm_inbox:flags.6?<a href='/constructor/true'>true</a> blocked_mode:flags.8?<a href='/constructor/true'>true</a> force_try_ipv6:flags.14?<a href='/constructor/true'>true</a> date:<a href='/type/int'>int</a> expires:<a href='/type/int'>int</a> test_mode:<a href='/type/Bool'>Bool</a> this_dc:<a href='/type/int'>int</a> dc_options:<a href='/type/Vector%20t'>Vector</a>&lt;<a href='/type/DcOption'>DcOption</a>&gt; dc_txt_domain_name:<a href='/type/string'>string</a> chat_size_max:<a href='/type/int'>int</a> megagroup_size_max:<a href='/type/int'>int</a> forwarded_count_max:<a href='/type/int'>int</a> online_update_period_ms:<a href='/type/int'>int</a> offline_blur_timeout_ms:<a href='/type/int'>int</a> offline_idle_timeout_ms:<a href='/type/int'>int</a> online_cloud_timeout_ms:<a href='/type/int'>int</a> notify_cloud_delay_ms:<a href='/type/int'>int</a> notify_default_delay_ms:<a href='/type/int'>int</a> push_chat_period_ms:<a href='/type/int'>int</a> push_chat_limit:<a href='/type/int'>int</a> edit_time_limit:<a href='/type/int'>int</a> revoke_time_limit:<a href='/type/int'>int</a> revoke_pm_time_limit:<a href='/type/int'>int</a> rating_e_decay:<a href='/type/int'>int</a> stickers_recent_limit:<a href='/type/int'>int</a> channels_read_media_period:<a href='/type/int'>int</a> tmp_sessions:flags.0?<a href='/type/int'>int</a> call_receive_timeout_ms:<a href='/type/int'>int</a> call_ring_timeout_ms:<a href='/type/int'>int</a> call_connect_timeout_ms:<a href='/type/int'>int</a> call_packet_timeout_ms:<a href='/type/int'>int</a> me_url_prefix:<a href='/type/string'>string</a> autoupdate_url_prefix:flags.7?<a href='/type/string'>string</a> gif_search_username:flags.9?<a href='/type/string'>string</a> venue_search_username:flags.10?<a href='/type/string'>string</a> img_search_username:flags.11?<a href='/type/string'>string</a> static_maps_provider:flags.12?<a href='/type/string'>string</a> caption_length_max:<a href='/type/int'>int</a> message_length_max:<a href='/type/int'>int</a> webfile_dc_id:<a href='/type/int'>int</a> suggested_lang_code:flags.2?<a href='/type/string'>string</a> lang_pack_version:flags.2?<a href='/type/int'>int</a> base_lang_pack_version:flags.2?<a href='/type/int'>int</a> reactions_default:flags.15?<a href='/type/Reaction'>Reaction</a> autologin_token:flags.16?<a href='/type/string'>string</a> = <a href='/type/Config'>Config</a>;
<a href='/constructor/updateConfig'>updateConfig</a>#a229dd06 = <a href='/type/Update'>Update</a>;
---functions---
<a href='/method/messages.setDefaultReaction'>messages.setDefaultReaction</a>#4f47a016 reaction:<a href='/type/Reaction'>Reaction</a> = <a href='/type/Bool'>Bool</a>;
<a href='/method/help.getConfig'>help.getConfig</a>#c4f9186b = <a href='/type/Config'>Config</a>;</code></pre>
<p><a href="/method/messages.setDefaultReaction">messages.setDefaultReaction</a> can be used to change the default emoji reaction to use in the quick reaction menu.<br>
This value is synced across devices through <a href="/constructor/updateConfig">updateConfig</a> and can be fetched using <a href="/method/help.getConfig">help.getConfig</a>, <code>reactions_default</code> field.</p></div>
</div>
</div>
</div>
<div class="footer_wrap">
<div class="footer_columns_wrap footer_desktop">
<div class="footer_column footer_column_telegram">
<h5>Telegram</h5>
<div class="footer_telegram_description"></div>
Telegram is a cloud-based mobile and desktop messaging app with a focus on security and speed.
</div>
<div class="footer_column">
<h5><a href="//telegram.org/faq">About</a></h5>
<ul>
<li><a href="//telegram.org/faq">FAQ</a></li>
<li><a href="//telegram.org/privacy">Privacy</a></li>
<li><a href="//telegram.org/press">Press</a></li>
</ul>
</div>
<div class="footer_column">
<h5><a href="//telegram.org/apps#mobile-apps">Mobile Apps</a></h5>
<ul>
<li><a href="//telegram.org/dl/ios">iPhone/iPad</a></li>
<li><a href="//telegram.org/android">Android</a></li>
<li><a href="//telegram.org/dl/web">Mobile Web</a></li>
</ul>
</div>
<div class="footer_column">
<h5><a href="//telegram.org/apps#desktop-apps">Desktop Apps</a></h5>
<ul>
<li><a href="//desktop.telegram.org/">PC/Mac/Linux</a></li>
<li><a href="//macos.telegram.org/">macOS</a></li>
<li><a href="//telegram.org/dl/web">Web-browser</a></li>
</ul>
</div>
<div class="footer_column footer_column_platform">
<h5><a href="/">Platform</a></h5>
<ul>
<li><a href="/api">API</a></li>
<li><a href="//translations.telegram.org/">Translations</a></li>
<li><a href="//instantview.telegram.org/">Instant View</a></li>
</ul>
</div>
</div>
<div class="footer_columns_wrap footer_mobile">
<div class="footer_column">
<h5><a href="//telegram.org/faq">About</a></h5>
</div>
<div class="footer_column">
<h5><a href="//telegram.org/blog">Blog</a></h5>
</div>
<div class="footer_column">
<h5><a href="//telegram.org/apps">Apps</a></h5>
</div>
<div class="footer_column">
<h5><a href="/">Platform</a></h5>
</div>
<div class="footer_column">
<h5><a href="//telegram.org/press">Press</a></h5>
</div>
</div>
</div>
</div>
<script src="/js/main.js?47"></script>
<script src="/js/jquery.min.js?1"></script>
<script src="/js/bootstrap.min.js?1"></script>
<script>window.initDevPageNav&&initDevPageNav();
backToTopInit("Go up");
removePreloadInit();
</script>
</body>
</html>