telegram-crawler/data/web/blogfork.telegram.org/constructor/keyboardButtonUrlAuth.html
2024-02-14 12:31:34 +00:00

182 lines
17 KiB
HTML

<!DOCTYPE html>
<html class="">
<head>
<meta charset="utf-8">
<title>keyboardButtonUrlAuth</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta property="description" content="Button to request a user to authorize via URL using Seamless Telegram Login. When the user clicks on such a button, messages.requestUrlAuth should be called, providing the button_id and the ID of the container message. The returned urlAuthResultRequest object will contain more details about the authorization request (request_write_access if the bot would like to send messages to the user along with the username of the bot which will be used for user authorization). Finally, the user can choose to call messages.acceptUrlAuth to get a urlAuthResultAccepted with the URL to open instead of the url of this constructor, or a urlAuthResultDefault, in which case the url of this constructor must be opened, instead. If the user refuses the authorization request but still wants to open the link, the url of this constructor must be used.">
<meta property="og:title" content="keyboardButtonUrlAuth">
<meta property="og:image" content="443f38171139ee6729">
<meta property="og:description" content="Button to request a user to authorize via URL using Seamless Telegram Login. When the user clicks on such a button, messages.requestUrlAuth should be called, providing the button_id and the ID of the container message. The returned urlAuthResultRequest object will contain more details about the authorization request (request_write_access if the bot would like to send messages to the user along with the username of the bot which will be used for user authorization). Finally, the user can choose to call messages.acceptUrlAuth to get a urlAuthResultAccepted with the URL to open instead of the url of this constructor, or a urlAuthResultDefault, in which case the url of this constructor must be opened, instead. If the user refuses the authorization request but still wants to open the link, the url of this constructor must be used.">
<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?236" 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="active"><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="/schema" >TL-schema</a></li><i class="icon icon-breadcrumb-divider"></i><li><a href="/constructor/keyboardButtonUrlAuth" >keyboardButtonUrlAuth</a></li></ul></div>
<h1 id="dev_page_title">keyboardButtonUrlAuth</h1>
<div id="dev_page_content"><p>Button to request a user to authorize via URL using <a href="https://telegram.org/blog/privacy-discussions-web-bots#meet-seamless-web-bots">Seamless Telegram Login</a>. When the user clicks on such a button, <a href="/method/messages.requestUrlAuth">messages.requestUrlAuth</a> should be called, providing the <code>button_id</code> and the ID of the container message. The returned <a href="/constructor/urlAuthResultRequest">urlAuthResultRequest</a> object will contain more details about the authorization request (<code>request_write_access</code> if the bot would like to send messages to the user along with the username of the bot which will be used for user authorization). Finally, the user can choose to call <a href="/method/messages.acceptUrlAuth">messages.acceptUrlAuth</a> to get a <a href="/constructor/urlAuthResultAccepted">urlAuthResultAccepted</a> with the URL to open instead of the <code>url</code> of this constructor, or a <a href="/constructor/urlAuthResultDefault">urlAuthResultDefault</a>, in which case the <code>url</code> of this constructor must be opened, instead. If the user refuses the authorization request but still wants to open the link, the <code>url</code> of this constructor must be used.</p>
<p><div class="clearfix">
<ul class="dev_layer_select slightly-pull-right nav nav-pills">
<li class="dropdown">
<a class="dropdown-toggle" onclick="return dropdownClick(this, event)" href="#">Layer 170 <b class="caret"></b></a>
<ul class="dropdown-menu">
<li><a href="?layer=1">1 &ndash; Base layer</a></li><li><a href="?layer=2">2 &ndash; New userpic notifications</a></li><li><a href="?layer=3">3 &ndash; Send message can trigger link change</a></li><li><a href="?layer=4">4 &ndash; Check-in chats</a></li><li><a href="?layer=5">5 &ndash; Localized SMS, localized notifications</a></li><li><a href="?layer=6">6 &ndash; Foursquare integration</a></li><li><a href="?layer=7">7 &ndash; Added wallPaperSolid</a></li><li><a href="?layer=8">8 &ndash; Added end-to-end encryption</a></li><li><a href="?layer=9">9 &ndash; Improved big files upload perfomance</a></li><li><a href="?layer=10">10 &ndash; Improved chat participants updates</a></li><li><a href="?layer=11">11 &ndash; Improved secret chats</a></li><li><a href="?layer=12">12 &ndash; New dynamic support</a></li><li><a href="?layer=13">13 &ndash; Audio, video MIME; contacts import retry; new secret actions</a></li><li><a href="?layer=14">14 &ndash; Notify settings sync, blacklist sync</a></li><li><a href="?layer=15">15 &ndash; Modified getHistory offset behaviour</a></li><li><a href="?layer=16">16 &ndash; Split sendCode into 2 parts</a></li><li><a href="?layer=17">17 &ndash; Added custom typing, introduced message flags</a></li><li><a href="?layer=18">18 &ndash; Added usernames</a></li><li><a href="?layer=23">23 &ndash; Stickers for secret chats</a></li><li><a href="?layer=105">105 &ndash; Scheduled messages, Cloud themes</a></li><li><a href="?layer=108">108 &ndash; Login with QR code</a></li><li><a href="?layer=109">109 &ndash; Polls v2</a></li><li><a href="?layer=110">110 &ndash; People Nearby 2.0, Bank card entity</a></li><li><a href="?layer=111">111 &ndash; Folders, Broadcast Stats</a></li><li><a href="?layer=112">112 &ndash; Old featured stickers, generic dice, poll timer, poll solution</a></li><li><a href="?layer=113">113 &ndash; PSA</a></li><li><a href="?layer=114">114 &ndash; Video thumbs for GIFs</a></li><li><a href="?layer=115">115 &ndash; Peek Channel Invite</a></li><li><a href="?layer=116">116 &ndash; Group Stats, Profile Videos</a></li><li><a href="?layer=117">117 &ndash; WebRTC Phone Calls</a></li><li><a href="?layer=118">118 &ndash; Callback with 2FA, Countries list</a></li><li><a href="?layer=119">119 &ndash; Comments in channels, Threads, Anonymous Admins</a></li><li><a href="?layer=120">120 &ndash; Multipins, Message Stats, GeoLive v2</a></li><li><a href="?layer=121">121 &ndash; SVG-based Outlines for Stickers</a></li><li><a href="?layer=122">122 &ndash; Voice Chats</a></li><li><a href="?layer=123">123 &ndash; Voice Chat improvements</a></li><li><a href="?layer=124">124 &ndash; Expiring Invite links</a></li><li><a href="?layer=125">125 &ndash; Voice Chats in Broadcasts</a></li><li><a href="?layer=126">126 &ndash; Ban channels in channels</a></li><li><a href="?layer=127">127 &ndash; Payments in channels</a></li><li><a href="?layer=128">128 &ndash; Microthumbs for User/Chat profile photos</a></li><li><a href="?layer=129">129 &ndash; Video Chats</a></li><li><a href="?layer=130">130 &ndash; Custom placeholder for bot reply keyboards</a></li><li><a href="?layer=131">131 &ndash; Reset 2FA Password after a week</a></li><li><a href="?layer=132">132 &ndash; Chat themes</a></li><li><a href="?layer=133">133 &ndash; 64-bit IDs for User/Chat</a></li><li><a href="?layer=134">134 &ndash; Chat Requests, Shared Media Calendar</a></li><li><a href="?layer=135">135 &ndash; Send Message As a Channel</a></li><li><a href="?layer=136">136 &ndash; Reactions</a></li><li><a href="?layer=137">137 &ndash; Translations</a></li><li><a href="?layer=138">138 &ndash; GIF Sticker Packs</a></li><li><a href="?layer=139">139 &ndash; RTMP streaming</a></li><li><a href="?layer=140">140 &ndash; WebApps, Cloud Ringtones</a></li><li><a href="?layer=142">142 &ndash; TCP Reflectors</a></li><li><a href="?layer=143">143 &ndash; Premium Subscription, Cloud Invoices</a></li><li><a href="?layer=144">144 &ndash; Premium as a Gift, Custom Emoji</a></li><li><a href="?layer=145">145 &ndash; Custom Reactions, Statuses, Sign In with email</a></li><li><a href="?layer=147">147 &ndash; Keywords for stickers and emojis</a></li><li><a href="?layer=148">148 &ndash; Forums, collectible usernames</a></li><li><a href="?layer=150">150 &ndash; Pinned forum topics, general topic</a></li><li><a href="?layer=151">151 &ndash; Media spoilers, suggested profile photos</a></li><li><a href="?layer=152">152 &ndash; Real-time translations, Firebase SMS authentication</a></li><li><a href="?layer=153">153 &ndash; Modify created stickersets</a></li><li><a href="?layer=155">155 &ndash; Dates for reactions</a></li><li><a href="?layer=158">158 &ndash; Shared folders, per-chat wallpapers</a></li><li><a href="?layer=159">159 &ndash; Anonymous votes</a></li><li><a href="?layer=160">160 &ndash; Stories</a></li><li><a href="?layer=164">164 &ndash; Stories in Channels</a></li><li><a href="?layer=166">166 &ndash; Giveaways in channels</a></li><li><a href="?layer=167">167 &ndash; Similar channels</a></li><li><a href="?layer=168">168 &ndash; Channel colors</a></li><li><a href="?layer=169">169 &ndash; Multiselection of chats for bots</a></li><li><a href="?layer=170"><strong>170 &ndash; Saved Messages 2.0</strong></a></li>
<li class="divider"></li>
<li><a href="/api/layers">More...</a></li>
</ul>
</li>
</ul>
</div>
<pre class="page_scheme"><code><a href="/constructor/keyboardButtonUrlAuth" class="current_page_link" >keyboardButtonUrlAuth</a>#10b78d29 flags:<a href="/type/%23" >#</a> text:<a href="/type/string" >string</a> fwd_text:flags.0?<a href="/type/string" >string</a> url:<a href="/type/string" >string</a> button_id:<a href="/type/int" >int</a> = <a href="/type/KeyboardButton" >KeyboardButton</a>;</code></pre></p>
<h3><a class="anchor" href="#parameters" id="parameters" name="parameters"><i class="anchor-icon"></i></a>Parameters</h3>
<table class="table">
<thead>
<tr>
<th>Name</th>
<th style="text-align: center;">Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>flags</strong></td>
<td style="text-align: center;"><a href="/type/%23">#</a></td>
<td>Flags, see <a href="/mtproto/TL-combinators#conditional-fields">TL conditional fields</a></td>
</tr>
<tr>
<td><strong>text</strong></td>
<td style="text-align: center;"><a href="/type/string">string</a></td>
<td>Button label</td>
</tr>
<tr>
<td><strong>fwd_text</strong></td>
<td style="text-align: center;"><a href="/mtproto/TL-combinators#conditional-fields">flags</a>.0?<a href="/type/string">string</a></td>
<td>New text of the button in forwarded messages.</td>
</tr>
<tr>
<td><strong>url</strong></td>
<td style="text-align: center;"><a href="/type/string">string</a></td>
<td>An HTTP URL to be opened with user authorization data added to the query string when the button is pressed. If the user refuses to provide authorization data, the original URL without information about the user will be opened. The data added is the same as described in <a href="/widgets/login#receiving-authorization-data">Receiving authorization data</a>.<br><br><strong>NOTE</strong>: Services must <strong>always</strong> check the hash of the received data to verify the authentication and the integrity of the data as described in <a href="/widgets/login#checking-authorization">Checking authorization</a>.</td>
</tr>
<tr>
<td><strong>button_id</strong></td>
<td style="text-align: center;"><a href="/type/int">int</a></td>
<td>ID of the button to pass to <a href="/method/messages.requestUrlAuth">messages.requestUrlAuth</a></td>
</tr>
</tbody>
</table>
<h3><a class="anchor" href="#type" id="type" name="type"><i class="anchor-icon"></i></a>Type</h3>
<p><a href="/type/KeyboardButton">KeyboardButton</a></p>
<h3><a class="anchor" href="#related-pages" id="related-pages" name="related-pages"><i class="anchor-icon"></i></a>Related pages</h3>
<h4><a class="anchor" href="#telegram-login-widget" id="telegram-login-widget" name="telegram-login-widget"><i class="anchor-icon"></i></a><a href="/widgets/login">Telegram Login Widget</a></h4>
<h4><a class="anchor" href="#messagesrequesturlauth" id="messagesrequesturlauth" name="messagesrequesturlauth"><i class="anchor-icon"></i></a><a href="/method/messages.requestUrlAuth">messages.requestUrlAuth</a></h4>
<p>Get more info about a Seamless Telegram Login authorization request, for more info <a href="/api/url-authorization">click here »</a></p>
<h4><a class="anchor" href="#urlauthresultrequest" id="urlauthresultrequest" name="urlauthresultrequest"><i class="anchor-icon"></i></a><a href="/constructor/urlAuthResultRequest">urlAuthResultRequest</a></h4>
<p>Details about the authorization request, for more info <a href="/api/url-authorization">click here »</a></p>
<h4><a class="anchor" href="#messagesaccepturlauth" id="messagesaccepturlauth" name="messagesaccepturlauth"><i class="anchor-icon"></i></a><a href="/method/messages.acceptUrlAuth">messages.acceptUrlAuth</a></h4>
<p>Use this to accept a Seamless Telegram Login authorization request, for more info <a href="/api/url-authorization">click here »</a></p>
<h4><a class="anchor" href="#urlauthresultaccepted" id="urlauthresultaccepted" name="urlauthresultaccepted"><i class="anchor-icon"></i></a><a href="/constructor/urlAuthResultAccepted">urlAuthResultAccepted</a></h4>
<p>Details about an accepted authorization request, for more info <a href="/api/url-authorization">click here »</a></p>
<h4><a class="anchor" href="#urlauthresultdefault" id="urlauthresultdefault" name="urlauthresultdefault"><i class="anchor-icon"></i></a><a href="/constructor/urlAuthResultDefault">urlAuthResultDefault</a></h4>
<p>Details about an accepted authorization request, for more info <a href="/api/url-authorization">click here »</a></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>backToTopInit("Go up");
removePreloadInit();
</script>
</body>
</html>