Update content of files

This commit is contained in:
GitHub Action 2021-04-24 15:08:32 +00:00
parent b3d3fd3462
commit e052cd9f8d
3 changed files with 492 additions and 1 deletions

View file

@ -0,0 +1,246 @@
<!DOCTYPE html>
<html class="">
<head>
<meta charset="utf-8">
<title>iOS &amp; macOS SDK</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta property="description" content="TGPassportKit helps you easily integrate Telegram Passport requests into your iOS &amp; macOS apps. Check out our GitHub repository…">
<meta property="og:title" content="iOS &amp; macOS SDK">
<meta property="og:image" content="">
<meta property="og:description" content="TGPassportKit helps you easily integrate Telegram Passport requests into your iOS &amp; macOS apps. Check out our GitHub repository…">
<link rel="shortcut icon" href="/favicon.ico?4" type="image/x-icon" />
<link href="/css/bootstrap.min.css?3" rel="stylesheet">
<link href="/css/telegram.css?212" 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=""><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="/passport" >Telegram Passport</a></li><i class="icon icon-breadcrumb-divider"></i><li><a href="/passport/sdk-ios-mac" >iOS &amp; macOS SDK</a></li></ul></div>
<h1 id="dev_page_title">iOS &amp; macOS SDK</h1>
<div id="dev_page_content"><!-- scroll_nav -->
<p>TGPassportKit helps you easily integrate Telegram Passport requests into your iOS &amp; macOS apps. Check out our <a href="https://github.com/TelegramMessenger/TGPassportKit">GitHub repository</a> to see samples using this SDK.</p>
<h3><a class="anchor" href="#installation" id="installation" name="installation"><i class="anchor-icon"></i></a>Installation</h3>
<h4><a class="anchor" href="#installing-using-cocoapods" id="installing-using-cocoapods" name="installing-using-cocoapods"><i class="anchor-icon"></i></a>Installing using Cocoapods</h4>
<p>To install TGPassportKit via Cocoapods add the following to your Podfile:</p>
<pre><code>target 'MyApp' do
pod 'TGPassportKit'
end</code></pre>
<p>then run <code>pod install</code> in your project root directory.</p>
<h4><a class="anchor" href="#installing-using-carthage" id="installing-using-carthage" name="installing-using-carthage"><i class="anchor-icon"></i></a>Installing using Carthage</h4>
<p>Add the following line to your Cartfile:</p>
<pre><code>github "telegrammessenger/TGPassportKit"</code></pre>
<p>then run <code>carthage update</code>, and you will get the latest version of TGPassportKit in your Carthage folder.</p>
<h3><a class="anchor" href="#project-setup" id="project-setup" name="project-setup"><i class="anchor-icon"></i></a>Project Setup</h3>
<h4><a class="anchor" href="#configure-your-infoplist" id="configure-your-infoplist" name="configure-your-infoplist"><i class="anchor-icon"></i></a>Configure Your Info.plist</h4>
<p>Configure your Info.plist by right-clicking it in Project Navigator, choosing <strong>Open As &gt; Source Code</strong> and adding this snippet:
<em>Replace <code>{bot_id}</code> with your value</em></p>
<pre><code>&lt;key&gt;CFBundleURLTypes&lt;/key&gt;
&lt;array&gt;
&lt;dict&gt;
&lt;key&gt;CFBundleURLSchemes&lt;/key&gt;
&lt;array&gt;
&lt;string&gt;tgbot{bot_id}&lt;/string&gt;
&lt;/array&gt;
&lt;/dict&gt;
&lt;/array&gt;
&lt;key&gt;LSApplicationQueriesSchemes&lt;/key&gt;
&lt;array&gt;
&lt;string&gt;tg&lt;/string&gt;
&lt;/array&gt;</code></pre>
<h4><a class="anchor" href="#connect-appdelegate-methods" id="connect-appdelegate-methods" name="connect-appdelegate-methods"><i class="anchor-icon"></i></a>Connect AppDelegate methods</h4>
<p>Add this code to your <code>UIApplicationDelegate</code> implementation</p>
<pre><code>#import &lt;TGPassportKit/TGPAppDelegate.h&gt;
- (BOOL)application:(UIApplication *)application
openURL:(NSURL *)url
options:(NSDictionary&lt;UIApplicationOpenURLOptionsKey, id&gt; *)options {
BOOL handledByPassportKit = [[TGPAppDelegate sharedDelegate] application:application
openURL:url
options:options];
return YES;
}</code></pre>
<p>If you support iOS 9 and below, also add this method:</p>
<pre><code>- (BOOL)application:(UIApplication *)application
openURL:(NSURL *)url
sourceApplication:(nullable NSString *)sourceApplication
annotation:(id)annotation {
BOOL handledByPassportKit = [[TGPAppDelegate sharedDelegate] application:application
openURL:url
sourceApplication:sourceApplication
annotation:annotation];
return YES;
}</code></pre>
<h3><a class="anchor" href="#usage" id="usage" name="usage"><i class="anchor-icon"></i></a>Usage</h3>
<h4><a class="anchor" href="#add-telegram-passport-button" id="add-telegram-passport-button" name="add-telegram-passport-button"><i class="anchor-icon"></i></a>Add Telegram Passport Button</h4>
<p>To add the Telegram Passport button, add the following code to your view controller:
<em>Replace <code>{bot_id}</code>, <code>{bot_public_key}</code> and <code>{request_nonce}</code> with your values</em></p>
<pre><code>#import &lt;TGPassportKit/TGPButton.h&gt;
@interface ViewController &lt;TGPButtonDelegate&gt;
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
TGPButton *button = [[TGPButton alloc] init];
button.botConfig = [[TGPBotConfig alloc] initWithBotId:{bot_id}
publicKey:@"{bot_public_key}"];
button.scope = [[TGPScope alloc] initWithJSONString:@"{\"data\":[\"id_document\",\"address_document\",\"phone_number\"],\"v\":1}"];
// You can also construct a scope using provided data type classes like this:
// button.scope = [[TGPScope alloc] initWithTypes:@[[[TGPPersonalDetails alloc] init], [[TGPIdentityDocument alloc] initWithType:TGPIdentityDocumentTypePassport selfie:true translation:true]]];
button.nonce = @"{request_nonce}";
button.delegate = self;
[self.view addSubview:button];
}
- (void)passportButton:(TGPButton *)passportButton
didCompleteWithResult:(TGPRequestResult)result
error:(NSError *)error {
switch (result) {
case TGPRequestResultSucceed:
NSLog(@"Succeed");
break;
case TGPRequestResultCancelled:
NSLog(@"Cancelled");
break;
default:
NSLog(@"Failed");
break;
}
}
@end</code></pre>
<h4><a class="anchor" href="#or-implement-your-own-behavior" id="or-implement-your-own-behavior" name="or-implement-your-own-behavior"><i class="anchor-icon"></i></a>...or Implement Your Own Behavior</h4>
<p>If you want to design a custom UI and behavior, you can invoke a Passport request like this:
<em>Replace <code>{bot_id}</code>, <code>{bot_public_key}</code> and <code>{request_nonce}</code> with your values</em></p>
<pre><code>#import &lt;TGPassportKit/TGPRequest.h&gt;
- (void)performPassportRequest
{
TGPBotConfig *botConfig = [[TGPBotConfig alloc] initWithBotId:{bot_id}
publicKey:@"{bot_public_key}"];
TGPRequest *request = [[TGPRequest alloc] initWithBotConfig:botConfig];
[request performWithScope:[[TGPScope alloc] initWithJSONString:@"{\"data\":[\"id_document\",\"phone_number\"],\"v\":1}"]
payload:@"{request_nonce}"
completionHandler:^(TGPRequestResult result, NSError * _Nullable error) {
switch (result) {
case TGPRequestResultSucceed:
NSLog(@"Succeed");
break;
case TGPRequestResultCancelled:
NSLog(@"Cancelled");
break;
default:
NSLog(@"Failed");
break;
}
}];
}</code></pre></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/blog">Blog</a></li>
<li><a href="//telegram.org/jobs">Jobs</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/dl/android">Android</a></li>
<li><a href="//telegram.org/dl/wp">Windows Phone</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="https://twitter.com/telegram" target="_blank" data-track="Follow/Twitter" onclick="trackDlClick(this, event)">Twitter</a></h5>
</div>
</div>
</div>
</div>
<script src="/js/main.js?42"></script>
<script src="/js/jquery.min.js?1"></script>
<script src="/js/bootstrap.min.js"></script>
<script>window.initDevPageNav&&initDevPageNav();
backToTopInit("Go up");
removePreloadInit();
</script>
</body>
</html>

View file

@ -65,8 +65,8 @@
</ul>
<h4><a class="anchor" name="web-apps" href="#web-apps"><i class="anchor-icon"></i></a>Web apps</h4>
<ul>
<li><a href="https://telegram.org/dl/webk"><i class="app-icon app-icon-webk"></i>Telegram WebK</a></li>
<li><a href="https://telegram.org/dl/webz"><i class="app-icon app-icon-webz"></i>Telegram WebZ</a></li>
<li><a href="https://telegram.org/dl/webk"><i class="app-icon app-icon-webk"></i>Telegram WebK</a></li>
</ul>
<h4><a class="anchor" name="telegram-database-library-tdlib" href="#telegram-database-library-tdlib"><i class="anchor-icon"></i></a>Telegram Database Library (TDLib)</h4>
<ul>

View file

@ -0,0 +1,245 @@
<!DOCTYPE html>
<html class="">
<head>
<meta charset="utf-8">
<title>Edit Messages, New Mentions and More</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta property="og:title" content="Edit Messages, New Mentions and More">
<meta property="og:image" content="https://telegram.org/file/811140010/1/POGV5NPdHAo.23437.gif/f1389ee360bf61f577">
<meta property="og:site_name" content="Telegram">
<meta property="og:description" content="Editing messages, new mentions, frequent contacts, bots in attachment menu, and more.">
<meta property="article:published_time" content="2016-05-15T17:12:57+00:00"><meta name="twitter:card" content="summary_large_image" /><meta name="twitter:image" content="https://telegram.org/file/811140010/1/POGV5NPdHAo.23437.gif/f1389ee360bf61f577" />
<meta property="fb:app_id" content="254098051407226">
<meta property="vk:app_id" content="3782569">
<meta name="apple-itunes-app" content="app-id=686449807">
<meta name="telegram:channel" content="@telegram">
<link rel="canonical" href="https://telegram.org/blog/edit" />
<link rel="icon" type="image/svg+xml" href="/img/website_icon.svg?4">
<link rel="alternate icon" href="/favicon.ico?4" type="image/x-icon" />
<link href="/css/bootstrap.min.css?3" rel="stylesheet">
<link href="/css/telegram.css?212" rel="stylesheet" media="screen">
<style>
</style>
</head>
<body class="preload">
<div id="fb-root"></div>
<div class="tl_page_wrap">
<div class="tl_page_head navbar navbar-static-top navbar navbar-tg">
<div class="navbar-inner">
<div class="container clearfix">
<ul class="nav navbar-nav navbar-right"><li class="dropdown top_lang_select"><a class="dropdown-toggle" onclick="return dropdownClick(this, event)" href="#"><i class="dev_top_lang_icon"></i> <b class="minicaret"></b></a>
<ul class="dropdown-menu"><li class=""><a href="?setln=en">English</a></li><li class="long "><a href="?setln=id">Bahasa Indonesia</a></li><li class="long "><a href="?setln=ms">Bahasa Melayu</a></li><li class=""><a href="?setln=de">Deutsch</a></li><li class=""><a href="?setln=es">Español</a></li><li class=""><a href="?setln=fr">Français</a></li><li class=""><a href="?setln=it">Italiano</a></li><li class=""><a href="?setln=nl">Nederlands</a></li><li class=""><a href="?setln=uz">Ozbek</a></li><li class=""><a href="?setln=pl">Polski</a></li><li class="long "><a href="?setln=pt-br">Português (Brasil)</a></li><li class=""><a href="?setln=tr">Türkçe</a></li><li class=""><a href="?setln=be">Беларуская</a></li><li class=""><a href="?setln=ru">Русский</a></li><li class=""><a href="?setln=uk">Українська</a></li><li class=""><a href="?setln=ar">العربية</a></li><li class=""><a href="?setln=fa">فارسی</a></li><li class=""><a href="?setln=ko">한국어</a></li></ul></li><li class="navbar-twitter hidden-xs"><a href="https://twitter.com/telegram" target="_blank" data-track="Follow/Twitter" onclick="trackDlClick(this, event)"><i class="icon icon-twitter"></i> Twitter</a></li></ul>
<ul class="nav navbar-nav">
<li class=""><a href="/">Home</a></li>
<li class=""><a href="/faq">FAQ</a></li>
<li class=""><a href="/apps">Apps</a></li>
<li class="hidden-xs "><a href="//core.telegram.org/api">API</a></li>
<li class="hidden-xs "><a href="//core.telegram.org/mtproto">Protocol</a></li>
</ul>
</div>
</div>
</div>
<div class="container clearfix tl_page_container ">
<div class="tl_page">
<div class="tl_contest_page_wrap">
<div class="tl_blog_side_blog"><div class="side_blog_wrap">
<div class="side_blog">
<a href="/blog" class="side_blog_header">Recent News</a>
<div class="side_blog_entries">
<a href="/blog/voice-chats-on-steroids" class="side_blog_entry">
<div class="side_blog_date">Mar 19</div>
<div class="side_blog_title">Voice Chats 2.0: Channels, Millions of Listeners, Recorded Chats, Admin Tools</div>
</a><a href="/blog/autodelete-inv2" class="side_blog_entry">
<div class="side_blog_date">Feb 23</div>
<div class="side_blog_title">Auto-Delete, Widgets and Expiring Invite Links</div>
</a><a href="/blog/move-history" class="side_blog_entry">
<div class="side_blog_date">Jan 28</div>
<div class="side_blog_title">Moving Chat History from Other Apps</div>
</a><a href="/blog/voice-chats" class="side_blog_entry">
<div class="side_blog_date">Dec 23</div>
<div class="side_blog_title">Voice Chats Done Right</div>
</a><a href="/blog/pinned-messages-locations-playlists" class="side_blog_entry">
<div class="side_blog_date">Oct 30</div>
<div class="side_blog_title">Pinned Messages 2.0, Improved Live Locations, Playlists and More</div>
</a><a href="/blog/filters-anonymous-admins-comments" class="side_blog_entry">
<div class="side_blog_date">Sep 30</div>
<div class="side_blog_title">Search Filters, Anonymous Admins, Channel Comments</div>
</a><a href="/blog/video-calls" class="side_blog_entry">
<div class="side_blog_date">Aug 14</div>
<div class="side_blog_title">Video Calls and Seven Years of Telegram</div>
</a>
</div>
</div>
</div></div>
<div id="dev_page_content_wrap" class=" ">
<div class="dev_page_bread_crumbs"></div>
<h1 id="dev_page_title">Edit Messages, New Mentions and More</h1>
<div id="dev_page_content"><div class="blog_side_image_wrap">
<img src="/file/811140010/1/POGV5NPdHAo.23437.gif/f1389ee360bf61f577" class="blog_side_image"/>
</div>
<p>Farewell to typos! Starting today, you can edit the text of your messages after sending them. This works across all Telegram chats, including groups and one-on-one conversations.</p>
<div class="blog_image_wrap">
<a href="/file/811140100/2/maZcBXgwrmE.306486/5bd7c8f4708afe28f8" target="_blank"><img src="/file/811140100/2/maZcBXgwrmE.306486/5bd7c8f4708afe28f8" title="Edit messages" /></a>
<p>Edit messages</p>
</div>
<p>Simply tap and hold on a message, then press Edit. If you&#39;re on <a href="https://desktop.telegram.org">desktop</a>, press the up arrow button to edit your last message. The messages will display a small edited label so that it&#39;s easy to tell which were altered.</p>
<h4><a class="anchor" name="new-mentions" href="#new-mentions"><i class="anchor-icon"></i></a>New Mentions</h4>
<p><a href="https://telegram.org/blog/replies-mentions-hashtags">Mentioning</a> other people in groups is handy since it sends them a notification about your message even if they muted the group. Starting today, you can mention any members in a group even if they don&#39;t have a <a href="https://telegram.org/blog/usernames-and-secret-chats-v2">username</a>. Just type the <code>@</code> symbol and select whoever you would like to address. Easy!</p>
<div class="blog_image_wrap">
<a href="/file/811140709/1/gTAMe7KBjxI.213591/37b9d9f3090d78a47f" target="_blank"><img src="/file/811140709/1/gTAMe7KBjxI.213591/37b9d9f3090d78a47f" title="Mention group members" /></a>
<p>Mention group members</p>
</div>
<h4><a class="anchor" name="people-list" href="#people-list"><i class="anchor-icon"></i></a>People List</h4>
<p>Speaking of addressing people, you can now get to your recent chats much faster using the new People list in Search.</p>
<div class="blog_image_wrap">
<a href="/file/811140588/2/TcLgRm4lvOs.216480/400f4e745ca4c23d05" target="_blank"><img src="/file/811140588/2/TcLgRm4lvOs.216480/400f4e745ca4c23d05" title="People" /></a>
<p>Recent chats</p>
</div>
<h4><a class="anchor" name="bot-attachments" href="#bot-attachments"><i class="anchor-icon"></i></a>Bot Attachments</h4>
<p>We&#39;ve also made it easier for you to access your favorite <a href="https://telegram.org/blog/inline-bots">inline bots</a>. Simply scroll down the attachment menu and there they are. The more you use them, the higher they will climb.</p>
<div class="blog_image_wrap">
<a href="/file/811140151/2/QBr-eVQIcDQ.234803/03ff1e9b0848871394" target="_blank"><img src="/file/811140151/2/QBr-eVQIcDQ.234803/03ff1e9b0848871394" title="Bots in attachment menu" /></a>
<p>Bots in attachment menu</p>
</div>
<p>Naturally, you will only see inline bots in the attachment menu if you used them at least once. Try <a href="https://telegram.me/youtube">@youtube</a>, <a href="https://telegram.me/gif">@gif</a> or <a href="https://telegram.me/imdb">@imdb</a> if you don&#39;t know where to start. Check out <a href="https://telegram.org/blog/inline-bots">this post</a> for more info on how to use inline bots.</p>
<h4><a class="anchor" name="interface-improvements" href="#interface-improvements"><i class="anchor-icon"></i></a>Interface Improvements</h4>
<p>Weve added quick sharing buttons to forwarded messages from bots, channels, and public groups. Notifications about messages with stickers will now show the relevant emoji so that youll know the general idea at first glance.</p>
<div class="blog_image_wrap">
<a href="/file/811140465/2/t_gAyjk4S3A.61521/73620590fdc021aa4e" target="_blank"><img src="/file/811140465/2/t_gAyjk4S3A.61521/73620590fdc021aa4e" title="Scroll to bottom" /></a>
<p>Scroll to bottom</p>
</div>
<p>Last but not least, if you&#39;re on <a href="https://telegram.org/dl/ios">iOS</a>, your app now remembers the scroll position in chats when switching to a different chat and back. And scrolling up in a chat summons a new button that will send you back to the bottom in one tap. This button also displays a handy unread message counter if new ones are waiting for you there.</p>
<div><br></div>
<p>And that&#39;s it for today. Stay tuned for more updates coming soon!</p>
<div><br></div>
<p><em>May 15, 2016<br>The Telegram Team</em></p>
</div>
</div>
<div class="tl_main_share clearfix">
<a href="https://t.me/share/url?url=https%3A%2F%2Ftelegram.org%2Fblog%2Fedit&text=Editing%20messages%2C%20new%20mentions%2C%20frequent%20contacts%2C%20bots%20in%20attachment%20menu%2C%20and%20more." class="tl_telegram_share_btn" id="tl_telegram_share_btn" data-text="Editing messages, new mentions, frequent contacts, bots in attachment menu, and more." data-url="https://telegram.org/blog/edit"><i class="tl_telegram_share_icon"></i><span class="tl_telegram_share_label" target="_blank">Forward</span></a>
<a href="https://twitter.com/share" class="tl_twitter_share_btn" id="tl_twitter_share_btn" data-text="Editing messages, new mentions, frequent contacts, bots in attachment menu, and more." data-url="https://telegram.org/blog/edit" data-via="Telegram">Tweet <span class="tl_twitter_share_cnt"></span></a>
</div>
</div>
<div class="tl_main_recent_news_wrap tlb_other_news_wrap tl_blog_list_page_wrap">
<h3 class="tl_main_recent_news_header">
<a href="/blog">Other News</a>
</h3>
<div class="tl_main_recent_news_cards clearfix">
<a class="dev_blog_card_link_wrap" href="/blog/voice-chats-on-steroids"><div class="dev_blog_card_wrap">
<img class="dev_blog_card_image" src="https://telegram.org/file/464001855/3/O31CcF_-a20.86962/cafa0c3d7dd2df1134" />
<div class="dev_blog_card_alltext_wrap">
<h4 class="dev_blog_card_title">Voice Chats 2.0: Channels, Millions of Listeners, Recorded Chats, Admin Tools</h4>
<div class="dev_blog_card_lead">Voice Chats first appeared in December, adding a new dimension of live talk to Telegram groups. Starting today, they become available in…</div>
</div>
<div class="dev_blog_card_date">Mar 19, 2021</div>
</div></a><a class="dev_blog_card_link_wrap" href="/blog/autodelete-inv2"><div class="dev_blog_card_wrap">
<img class="dev_blog_card_image" src="https://telegram.org/file/464001701/5/WvHD2TGPSzU.74913/648f3e17886f6c96f8" />
<div class="dev_blog_card_alltext_wrap">
<h4 class="dev_blog_card_title">Auto-Delete, Widgets and Expiring Invite Links</h4>
<div class="dev_blog_card_lead">This update brings an auto-delete timer for messages in any chat, as well as new flexible invite links and faster access to your chats…</div>
</div>
<div class="dev_blog_card_date">Feb 23, 2021</div>
</div></a><a class="dev_blog_card_link_wrap" href="/blog/move-history"><div class="dev_blog_card_wrap">
<img class="dev_blog_card_image" src="https://telegram.org/file/464001185/1/Z6LVvcYB03g.64305/e8ff8c87c4d656cbe1" />
<div class="dev_blog_card_alltext_wrap">
<h4 class="dev_blog_card_title">Moving Chat History from Other Apps</h4>
<div class="dev_blog_card_lead">Over 100 million new users joined Telegram this January, seeking more privacy and freedom. But what about the messages and memories that remain in older apps? Starting today, everyone…</div>
</div>
<div class="dev_blog_card_date">Jan 28, 2021</div>
</div></a><a class="dev_blog_card_link_wrap" href="/blog/voice-chats"><div class="dev_blog_card_wrap">
<img class="dev_blog_card_image" src="https://telegram.org/file/464001202/4/Mo4VjRb1ndM.81564/729451f158ff1f6267" />
<div class="dev_blog_card_alltext_wrap">
<h4 class="dev_blog_card_title">Voice Chats Done Right</h4>
<div class="dev_blog_card_lead">Today, Telegram groups get an entire new dimension with Voice Chats persistent conference calls that members can join and leave as they please. Our 12th update in 2020 brings them…</div>
</div>
<div class="dev_blog_card_date">Dec 23, 2020</div>
</div></a>
</div>
</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="/faq">About</a></h5>
<ul>
<li><a href="/faq">FAQ</a></li>
<li><a href="/blog">Blog</a></li>
<li><a href="/jobs">Jobs</a></li>
</ul>
</div>
<div class="footer_column">
<h5><a href="/apps#mobile-apps">Mobile Apps</a></h5>
<ul>
<li><a href="/dl/ios">iPhone/iPad</a></li>
<li><a href="/dl/android">Android</a></li>
<li><a href="/dl/wp">Windows Phone</a></li>
</ul>
</div>
<div class="footer_column">
<h5><a href="/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="/dl/web">Web-browser</a></li>
</ul>
</div>
<div class="footer_column footer_column_platform">
<h5><a href="//core.telegram.org/">Platform</a></h5>
<ul>
<li><a href="//core.telegram.org/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="/faq">About</a></h5>
</div>
<div class="footer_column">
<h5><a href="/blog">Blog</a></h5>
</div>
<div class="footer_column">
<h5><a href="/apps">Apps</a></h5>
</div>
<div class="footer_column">
<h5><a href="//core.telegram.org/">Platform</a></h5>
</div>
<div class="footer_column">
<h5><a href="https://twitter.com/telegram" target="_blank" data-track="Follow/Twitter" onclick="trackDlClick(this, event)">Twitter</a></h5>
</div>
</div>
</div>
<script src="/js/main.js?42"></script>
<script>initScrollVideos(true);
twitterCustomShareInit();
blogSideImageInit();
backToTopInit("Go up");
removePreloadInit();
</script>
</body>
</html>