<metaproperty="description"content="Channel/supergroup (channel and/or channelFull) information was updated. This update can only be received through getDifference or in updates/updatesCombined constructors, so it will always come bundled with the updated channel, that should be applied as usual », without re-fetching the info manually. However, full peer information will not come bundled in updates, so the full peer cache (channelFull) must be invalidated for channel_id when receiving this update.">
<metaproperty="og:description"content="Channel/supergroup (channel and/or channelFull) information was updated. This update can only be received through getDifference or in updates/updatesCombined constructors, so it will always come bundled with the updated channel, that should be applied as usual », without re-fetching the info manually. However, full peer information will not come bundled in updates, so the full peer cache (channelFull) must be invalidated for channel_id when receiving this update.">
<divid="dev_page_content"><p>Channel/supergroup (<ahref="/constructor/channel">channel</a> and/or <ahref="/constructor/channelFull">channelFull</a>) information was updated.</p>
<p>This update can only be received through getDifference or in <ahref="/constructor/updates">updates</a>/<ahref="/constructor/updatesCombined">updatesCombined</a> constructors, so it will <strong>always</strong> come bundled with the updated <ahref="/constructor/channel">channel</a>, that should be applied <ahref="/api/peers">as usual »</a>, <strong>without</strong> re-fetching the info manually.</p>
<p>However, full peer information will not come bundled in updates, so the full peer cache (<ahref="/constructor/channelFull">channelFull</a>) must be invalidated for <code>channel_id</code> when receiving this update.</p>
<p>When updating the <ahref="/api/peers">local peer database</a>, all fields from the newly received constructor take priority over the old constructor cached locally (including by removing fields that aren't set in the new constructor).</p>
<p>The only exception to the above rule is when the <code>min</code> flag is set, in which case <strong>only</strong> the following fields must be applied over any locally stored version:</p>
<ul>
<li><code>title</code></li>
<li><code>megagroup</code></li>
<li><code>color</code></li>
<li><code>photo</code></li>
<li><code>username</code></li>
<li><code>usernames</code></li>
<li><code>has_geo</code></li>
<li><code>noforwards</code></li>
<li><code>emoji_status</code></li>
<li><code>has_link</code></li>
<li><code>slow_mode_enabled</code></li>
<li><code>scam</code></li>
<li><code>fake</code></li>
<li><code>gigagroup</code></li>
<li><code>forum</code></li>
<li><code>level</code></li>
<li><code>restricted</code></li>
<li><code>restriction_reason</code></li>
<li><code>join_to_send</code></li>
<li><code>join_request</code></li>
<li><code>is_verified</code></li>
<li><code>default_banned_rights</code></li>
</ul>
<p>See <ahref="https://github.com/tdlib/td/blob/a24af0992245f838f2b4b418a0a2d5fa9caa27b5/td/telegram/ChatManager.cpp#L8329">here »</a> for an implementation of the logic to use when updating the <ahref="/api/peers">local user peer database</a>.</p>
<p>Full info about a <ahref="/api/channel#channels">channel</a>, <ahref="/api/channel#supergroups">supergroup</a> or <ahref="/api/channel#gigagroups">gigagroup</a>.</p>
<p>When updating the <ahref="/api/peers">local peer database »</a>, all fields from the newly received constructor take priority over the old constructor cached locally (including by removing fields that aren't set in the new constructor).</p>
<p>Many constructors in the API need to be stored in a local database upon reception and should only ever be updated reactively (passively) when received via updates or by other means (as specified in the documentation), to avoid overloading the server by continuously requesting changes for the same unchanged information.</p></div>