{"id":22280,"date":"2024-08-29T10:58:14","date_gmt":"2024-08-29T05:28:14","guid":{"rendered":"https:\/\/www.seminarsonly.com\/news\/?p=22280"},"modified":"2024-08-29T12:03:26","modified_gmt":"2024-08-29T06:33:26","slug":"https-www-google-com-device-sign-in-on-tvs-and-limited-input-devices","status":"publish","type":"post","link":"https:\/\/seminarsonly.com\/news\/https-www-google-com-device-sign-in-on-tvs-and-limited-input-devices\/","title":{"rendered":"https \/\/www.google.com\/device : Sign-In on TVs and Limited Input Devices"},"content":{"rendered":"<h1><span style=\"color: #800000;\">https \/\/www.google.com\/device : Sign-In on TVs and Limited Input Devices<\/span><\/h1>\n<p><em><strong>You can let users sign in to your app with their Google accounts on devices at www.google.com\/device with limited input capabilities, such as Internet-connected TVs.<\/strong><\/em><\/p>\n<p>The app displays a short code and sign-in URL to the user. Then, the user opens the sign-in URL in a web browser, enters the code, and grants the app permission to access the user&#8217;s sign-in information. Finally, the app receives confirmation and the user is signed in.<\/p>\n<p>To use this sign-in flow, the app must run on a device that meets the following criteria:-<\/p>\n<ul>\n<li>The device must be capable of displaying a 40-character URL and a 15-character user code, along with instructions to the user.<\/li>\n<li>The device must be connected to the Internet.<\/li>\n<\/ul>\n<h2 id=\"get_a_client_id_and_client_secret\" role=\"presentation\" data-text=\"Get a client ID and client secret\"><span class=\"devsite-heading\" style=\"color: #800000;\" role=\"heading\" aria-level=\"2\">Get a client ID and client secret<\/span><\/h2>\n<p role=\"presentation\" data-text=\"Get a client ID and client secret\">Your app needs an OAuth 2.0 client ID and client secret to make requests to Google&#8217;s sign-in endpoints.<\/p>\n<p>To find your project&#8217;s client ID and client secret, do the following:<\/p>\n<ol>\n<li>Select an existing OAuth 2.0 credential\u00a0or open the\u00a0<a href=\"https:\/\/console.developers.google.com\/apis\/credentials\">Credentials page.<\/a><\/li>\n<li>If you haven&#8217;t done so already, create your project&#8217;s OAuth 2.0 credentials by clicking\u00a0<b>Create credentials &gt; OAuth client ID<\/b>, and providing the information needed to create the credentials.<\/li>\n<li>Look for the\u00a0<b>Client ID<\/b>\u00a0in the\u00a0<b>OAuth 2.0 client IDs<\/b> section. For details, click the client ID.<\/li>\n<\/ol>\n<p>If you are creating a new client ID, select the\u00a0<strong>TVs and Limited Input devices<\/strong> application type<\/p>\n<h2 id=\"obtain_a_user_code_and_verification_url\" role=\"presentation\" data-text=\"Obtain a user code and verification URL\"><span class=\"devsite-heading\" style=\"color: #800000;\" role=\"heading\" aria-level=\"2\">Obtain a user code and verification URL<\/span><\/h2>\n<p role=\"presentation\" data-text=\"Obtain a user code and verification URL\">Once a user requests to sign in using a Google Account, you obtain a user code and verification URL by sending an HTTP POST request to the OAuth 2.0 device endpoint,\u00a0<code dir=\"ltr\" translate=\"no\">https:\/\/oauth2.googleapis.com\/device\/code<\/code>. Include your client ID and a list of the scopes you need with the request. If you only want to sign in users with their Google accounts, request only the\u00a0<code dir=\"ltr\" translate=\"no\">profile<\/code>\u00a0and\u00a0<code dir=\"ltr\" translate=\"no\">email<\/code>\u00a0scopes; or, if you want to request permission to call a\u00a0supported API\u00a0on behalf of users, request the required scopes in addition to the\u00a0<code dir=\"ltr\" translate=\"no\">profile<\/code>\u00a0and\u00a0<code dir=\"ltr\" translate=\"no\">email<\/code>\u00a0scopes.<\/p>\n<p>The following is an example request for a user code:<\/p>\n<pre dir=\"ltr\" translate=\"no\">POST \/device\/code HTTP\/1.1\r\nHost: oauth2.googleapis.com\r\nContent-Type: application\/x-www-form-urlencoded\r\n\r\nclient_id=<span class=\"devsite-var-wrapper\"><var spellcheck=\"false\">CLIENT_ID<\/var><\/span>&amp;scope=email%20profile<\/pre>\n<p>Using\u00a0<code dir=\"ltr\" translate=\"no\">curl<\/code>:<\/p>\n<div class=\"devsite-code-buttons-container\" role=\"group\" aria-label=\"Action buttons\"><\/div>\n<pre dir=\"ltr\" translate=\"no\">curl -d \"client_id=<span class=\"devsite-var-wrapper\"><var spellcheck=\"false\">CLIENT_ID<\/var><\/span>&amp;scope=email profile\" https:\/\/oauth2.googleapis.com\/device\/code<\/pre>\n<p>The response is returned as a JSON object:<\/p>\n<div class=\"devsite-code-buttons-container\" role=\"group\" aria-label=\"Action buttons\"><\/div>\n<pre class=\"\" dir=\"ltr\" translate=\"no\"><code dir=\"ltr\"><span class=\"pun\">{<\/span><span class=\"pln\">\r\n\u00a0 <\/span><span class=\"str\">\"device_code\"<\/span> <span class=\"pun\">:<\/span> <span class=\"str\">\"4\/4-GMMhmHCXhWEzkobqIHGG_EnNYYsAkukHspeYUk9E8\"<\/span><span class=\"pun\">,<\/span><span class=\"pln\">\r\n\u00a0 <\/span><span class=\"str\">\"user_code\"<\/span> <span class=\"pun\">:<\/span> <span class=\"str\">\"GQVQ-JKEC\"<\/span><span class=\"pun\">,<\/span><span class=\"pln\">\r\n\u00a0 <\/span><span class=\"str\">\"verification_url\"<\/span> <span class=\"pun\">:<\/span> <span class=\"str\">\"https:\/\/www.google.com\/device\"<\/span><span class=\"pun\">,<\/span><span class=\"pln\">\r\n\u00a0 <\/span><span class=\"str\">\"expires_in\"<\/span> <span class=\"pun\">:<\/span> <span class=\"lit\">1800<\/span><span class=\"pun\">,<\/span><span class=\"pln\">\r\n\u00a0 <\/span><span class=\"str\">\"interval\"<\/span> <span class=\"pun\">:<\/span> <span class=\"lit\">5<\/span>\r\n<span class=\"pun\">}<\/span>\r\n<\/code><\/pre>\n<p>Your app displays the\u00a0<code dir=\"ltr\" translate=\"no\">user_code<\/code>\u00a0and\u00a0<code dir=\"ltr\" translate=\"no\">verification_url<\/code>\u00a0values to the user, and, at the same time, polls the sign-in endpoint at the specified\u00a0<code dir=\"ltr\" translate=\"no\">interval<\/code>\u00a0until either the user signs in or the time specified by\u00a0<code dir=\"ltr\" translate=\"no\">expires_in<\/code>\u00a0has passed.<\/p>\n<h2 id=\"display_the_user_code_and_verification_url\" role=\"presentation\" data-text=\"Display the user code and verification URL\"><span class=\"devsite-heading\" style=\"color: #800000;\" role=\"heading\" aria-level=\"2\">Display the user code and verification URL<\/span><\/h2>\n<p role=\"presentation\" data-text=\"Display the user code and verification URL\">After you receive a user code and verification URL from the device endpoint, display them and instruct the user to open the URL and enter the user code.<\/p>\n<p>The values of\u00a0<code dir=\"ltr\" translate=\"no\">verification_url<\/code>\u00a0and\u00a0<code dir=\"ltr\" translate=\"no\">user_code<\/code>\u00a0are subject to change. Design your UI in a way that can handle the following limits:<\/p>\n<ul>\n<li><code dir=\"ltr\" translate=\"no\">user_code<\/code>\u00a0must be displayed in a field wide enough to handle 15\u00a0<code dir=\"ltr\" translate=\"no\">W<\/code>-sized characters.<\/li>\n<li><code dir=\"ltr\" translate=\"no\">verification_url<\/code>\u00a0must be displayed in a field wide enough to handle a URL string that is 40 characters long.<\/li>\n<\/ul>\n<p>Both strings can contain any printable character from the US-ASCII character set.<\/p>\n<p>When you display the\u00a0<code dir=\"ltr\" translate=\"no\">user_code<\/code>\u00a0string, don&#8217;t modify the string in any way (such as changing the case or inserting other formatting characters), because your app might break if the format of the code changes in the future.<\/p>\n<p>You can modify the\u00a0<code dir=\"ltr\" translate=\"no\">verification_url<\/code>\u00a0string by stripping off the scheme from the URL for display purposes if you choose. If you do, be sure your app can handle both &#8220;http&#8221; and &#8220;https&#8221; variants. Don&#8217;t otherwise modify the\u00a0<code dir=\"ltr\" translate=\"no\">verification_url<\/code>\u00a0string.<\/p>\n<p>When the user navigates to the verification URL, they see a page similar to the following:<\/p>\n<p><img decoding=\"async\" class=\"screenshot aligncenter\" src=\"https:\/\/developers.google.com\/identity\/protocols\/images\/oauth2\/device\/user-code.png\" alt=\"Connect a device by entering a code\" width=\"378\" height=\"436\" \/><\/p>\n<p>After the user enters the user code, the Google sign-in site presents a consent screen similar to the following:<\/p>\n<p>If the user clicks\u00a0<strong>Allow<\/strong>, then your app can obtain an ID token to identify the user, an access token to call Google APIs, and a refresh token to acquire new tokens.<\/p>\n<h2 id=\"obtain_an_id_token_and_refresh_token\" role=\"presentation\" data-text=\"Obtain an ID token and refresh token\"><span style=\"color: #800000;\"><span class=\"devsite-heading\" role=\"heading\" aria-level=\"2\">Obtain an ID token and refresh token<\/span><button class=\"devsite-heading-link button-flat material-icons\" type=\"button\" aria-label=\"Copy link to this section: Obtain an ID token and refresh token\" data-title=\"Copy link to this section: Obtain an ID token and refresh token\" data-id=\"obtain_an_id_token_and_refresh_token\"><\/button><\/span><\/h2>\n<p>After your app displays the user code and verification URL, begin polling the token endpoint (<code dir=\"ltr\" translate=\"no\">https:\/\/oauth2.googleapis.com\/token<\/code>) with the device code that you received from the device endpoint. Poll the token endpoint at the interval, in seconds, specified by the\u00a0<code dir=\"ltr\" translate=\"no\">interval<\/code>\u00a0value.<\/p>\n<p>The following is an example request:<\/p>\n<div class=\"devsite-code-buttons-container\" role=\"group\" aria-label=\"Action buttons\"><\/div>\n<pre dir=\"ltr\" translate=\"no\">POST \/token HTTP\/1.1\r\nHost: oauth2.googleapis.com\r\nContent-Type: application\/x-www-form-urlencoded\r\n\r\nclient_id=<span class=\"devsite-var-wrapper\"><var spellcheck=\"false\">CLIENT_ID<\/var><\/span>&amp;client_secret=<span class=\"devsite-var-wrapper\"><var spellcheck=\"false\">CLIENT_SECRET<\/var><\/span>&amp;code=<span class=\"devsite-var-wrapper\"><var spellcheck=\"false\">DEVICE_CODE<\/var><\/span>&amp;grant_type=http:\/\/oauth.net\/grant_type\/device\/1.0\r\n<\/pre>\n<p>Using\u00a0<code dir=\"ltr\" translate=\"no\">curl<\/code>:<\/p>\n<div class=\"devsite-code-buttons-container\" role=\"group\" aria-label=\"Action buttons\"><\/div>\n<pre dir=\"ltr\" translate=\"no\">curl -d \"client_id=<span class=\"devsite-var-wrapper\"><var spellcheck=\"false\">CLIENT_ID<\/var><\/span>&amp;client_secret=<span class=\"devsite-var-wrapper\"><var spellcheck=\"false\">CLIENT_SECRET<\/var><\/span>&amp;code=<span class=\"devsite-var-wrapper\"><var spellcheck=\"false\">DEVICE_CODE<\/var><\/span>&amp;grant_type=http:\/\/oauth.net\/grant_type\/device\/1.0\" https:\/\/oauth2.googleapis.com\/token<\/pre>\n<p>If the user has not yet approved the request, the response is as follows:<\/p>\n<div class=\"devsite-code-buttons-container\" role=\"group\" aria-label=\"Action buttons\"><\/div>\n<pre class=\"\" dir=\"ltr\" translate=\"no\"><code dir=\"ltr\"><span class=\"pun\">{<\/span><span class=\"pln\">\r\n\u00a0 <\/span><span class=\"str\">\"error\"<\/span> <span class=\"pun\">:<\/span> <span class=\"str\">\"authorization_pending\"<\/span>\r\n<span class=\"pun\">}<\/span>\r\n<\/code><\/pre>\n<p>Your app should repeat these requests at a rate that does not exceed the value of\u00a0<code dir=\"ltr\" translate=\"no\">interval<\/code>. If your app polls too quickly, the response is as follows:<\/p>\n<div class=\"devsite-code-buttons-container\" role=\"group\" aria-label=\"Action buttons\"><\/div>\n<pre class=\"\" dir=\"ltr\" translate=\"no\"><code dir=\"ltr\"><span class=\"pun\">{<\/span><span class=\"pln\">\r\n\u00a0 <\/span><span class=\"str\">\"error\"<\/span> <span class=\"pun\">:<\/span> <span class=\"str\">\"slow_down\"<\/span>\r\n<span class=\"pun\">}<\/span>\r\n<\/code><\/pre>\n<p>Once the user signs in and grants your app access to the scopes you requested, the response to your app&#8217;s next request includes an ID token, an access token, and a refresh token:<\/p>\n<div class=\"devsite-code-buttons-container\" role=\"group\" aria-label=\"Action buttons\"><\/div>\n<pre class=\"\" dir=\"ltr\" translate=\"no\"><code dir=\"ltr\"><span class=\"pun\">{<\/span><span class=\"pln\">\r\n\u00a0 <\/span><span class=\"str\">\"access_token\"<\/span> <span class=\"pun\">:<\/span> <span class=\"str\">\"ya29.AHES6ZSuY8f6WFLswSv0HZLP2J4cCvFSj-8GiZM0Pr6cgXU\"<\/span><span class=\"pun\">,<\/span><span class=\"pln\">\r\n\u00a0 <\/span><span class=\"str\">\"token_type\"<\/span> <span class=\"pun\">:<\/span> <span class=\"str\">\"Bearer\"<\/span><span class=\"pun\">,<\/span><span class=\"pln\">\r\n\u00a0 <\/span><span class=\"str\">\"expires_in\"<\/span> <span class=\"pun\">:<\/span> <span class=\"lit\">3600<\/span><span class=\"pun\">,<\/span><span class=\"pln\">\r\n\u00a0 <\/span><span class=\"str\">\"refresh_token\"<\/span> <span class=\"pun\">:<\/span> <span class=\"str\">\"1\/551G1yXUqgkDGnkfFk6ZbjMMMDIMxo3JFc8lY8CAR-Q\"<\/span><span class=\"pun\">,<\/span><span class=\"pln\">\r\n\u00a0 <\/span><span class=\"str\">\"id_token\"<\/span><span class=\"pun\">:<\/span> <span class=\"str\">\"eyJhbGciOiJSUzI...\"<\/span>\r\n<span class=\"pun\">}<\/span>\r\n<\/code><\/pre>\n<p>Upon receipt of this response, your app can decode the ID token to get basic profile information about the signed-in user, or send the ID token to your app&#8217;s backend server to securely authenticate with the server. Also, your app can use the access token to call the Google APIs that the user authorized<\/p>\n<p>ID and access tokens have limited lifetimes. To keep the user signed in beyond the tokens&#8217; lifetimes, store the refresh token and use it to request new tokens<\/p>\n<h2 id=\"get_user_profile_information_from_the_id_token\" role=\"presentation\" data-text=\"Get user profile information from the ID token\"><span class=\"devsite-heading\" style=\"color: #800000;\" role=\"heading\" aria-level=\"2\">Get user profile information from the ID token<\/span><\/h2>\n<p>You can get profile information about the signed-in user by decoding the ID token with any\u00a0JWT-decoding library. For example, using the Auth0\u00a0jwt-decode\u00a0JavaScript library:<\/p>\n<div class=\"devsite-code-buttons-container\" role=\"group\" aria-label=\"Action buttons\"><\/div>\n<pre class=\"lang-js\" dir=\"ltr\" translate=\"no\"><span class=\"kwd\">var<\/span><span class=\"pln\"> user_profile <\/span><span class=\"pun\">=<\/span><span class=\"pln\"> jwt_decode<\/span><span class=\"pun\">(<\/span><span class=\"devsite-var-wrapper\"><var spellcheck=\"false\" data-title=\"Edit id_token\">id_token<button class=\"material-icons devsite-icon-edit\" tabindex=\"-1\"><\/button><\/var><\/span><span class=\"pun\">);<\/span>\r\n\r\n<span class=\"com\">\/\/ The \"sub\" field is available on all ID tokens. This value is unique for each<\/span>\r\n<span class=\"com\">\/\/ Google account and can be used to identify the user. (But do not send this<\/span>\r\n<span class=\"com\">\/\/ value to your server; instead, send the whole ID token so its authenticity<\/span>\r\n<span class=\"com\">\/\/ can be verified.)<\/span>\r\n<span class=\"kwd\">var<\/span><span class=\"pln\"> user_id <\/span><span class=\"pun\">=<\/span><span class=\"pln\"> user_profile<\/span><span class=\"pun\">[<\/span><span class=\"str\">\"sub\"<\/span><span class=\"pun\">];<\/span>\r\n\r\n<span class=\"com\">\/\/ These values are available when you request the \"profile\" and \"email\" scopes.<\/span>\r\n<span class=\"kwd\">var<\/span><span class=\"pln\"> user_email <\/span><span class=\"pun\">=<\/span><span class=\"pln\"> user_profile<\/span><span class=\"pun\">[<\/span><span class=\"str\">\"email\"<\/span><span class=\"pun\">];<\/span>\r\n<span class=\"kwd\">var<\/span><span class=\"pln\"> email_verified <\/span><span class=\"pun\">=<\/span><span class=\"pln\"> user_profile<\/span><span class=\"pun\">[<\/span><span class=\"str\">\"email_verified\"<\/span><span class=\"pun\">];<\/span>\r\n<span class=\"kwd\">var<\/span><span class=\"pln\"> user_name <\/span><span class=\"pun\">=<\/span><span class=\"pln\"> user_profile<\/span><span class=\"pun\">[<\/span><span class=\"str\">\"name\"<\/span><span class=\"pun\">];<\/span>\r\n<span class=\"kwd\">var<\/span><span class=\"pln\"> user_photo_url <\/span><span class=\"pun\">=<\/span><span class=\"pln\"> user_profile<\/span><span class=\"pun\">[<\/span><span class=\"str\">\"picture\"<\/span><span class=\"pun\">];<\/span>\r\n<span class=\"kwd\">var<\/span><span class=\"pln\"> user_given_name <\/span><span class=\"pun\">=<\/span><span class=\"pln\"> user_profile<\/span><span class=\"pun\">[<\/span><span class=\"str\">\"given_name\"<\/span><span class=\"pun\">];<\/span>\r\n<span class=\"kwd\">var<\/span><span class=\"pln\"> user_family_name <\/span><span class=\"pun\">=<\/span><span class=\"pln\"> user_profile<\/span><span class=\"pun\">[<\/span><span class=\"str\">\"family_name\"<\/span><span class=\"pun\">];<\/span>\r\n<span class=\"kwd\">var<\/span><span class=\"pln\"> user_locale <\/span><span class=\"pun\">=<\/span><span class=\"pln\"> user_profile<\/span><span class=\"pun\">[<\/span><span class=\"str\">\"locale\"<\/span><span class=\"pun\">];<\/span><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>https \/\/www.google.com\/device : Sign-In on TVs and Limited Input Devices You can let users sign in to your app with their Google accounts on devices at www.google.com\/device with limited input&hellip;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2],"tags":[],"class_list":["post-22280","post","type-post","status-publish","format-standard","hentry","category-news"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.2 (Yoast SEO v27.2) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>https \/\/www.google.com\/device : Sign-In on TVs and Limited Input Devices - Seminarsonly.com<\/title>\n<meta name=\"description\" content=\"You can let users sign in to your app with their Google accounts on devices at www.google.com\/device with limited input capabilities, such as Internet-connected TVs.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/seminarsonly.com\/news\/https-www-google-com-device-sign-in-on-tvs-and-limited-input-devices\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"https \/\/www.google.com\/device : Sign-In on TVs and Limited Input Devices\" \/>\n<meta property=\"og:description\" content=\"You can let users sign in to your app with their Google accounts on devices at www.google.com\/device with limited input capabilities, such as Internet-connected TVs.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/seminarsonly.com\/news\/https-www-google-com-device-sign-in-on-tvs-and-limited-input-devices\/\" \/>\n<meta property=\"og:site_name\" content=\"Seminarsonly.com\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/facebook.com\/seminarsonly\" \/>\n<meta property=\"article:published_time\" content=\"2024-08-29T05:28:14+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-08-29T06:33:26+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/developers.google.com\/identity\/protocols\/images\/oauth2\/device\/user-code.png\" \/>\n<meta name=\"author\" content=\"Freddy John\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@seminarsonly\" \/>\n<meta name=\"twitter:site\" content=\"@seminarsonly\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Freddy John\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/seminarsonly.com\/news\/https-www-google-com-device-sign-in-on-tvs-and-limited-input-devices\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/seminarsonly.com\/news\/https-www-google-com-device-sign-in-on-tvs-and-limited-input-devices\/\"},\"author\":{\"name\":\"Freddy John\",\"@id\":\"https:\/\/seminarsonly.com\/news\/#\/schema\/person\/75cf706896b7210fb0a84651adc258bd\"},\"headline\":\"https \/\/www.google.com\/device : Sign-In on TVs and Limited Input Devices\",\"datePublished\":\"2024-08-29T05:28:14+00:00\",\"dateModified\":\"2024-08-29T06:33:26+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/seminarsonly.com\/news\/https-www-google-com-device-sign-in-on-tvs-and-limited-input-devices\/\"},\"wordCount\":893,\"image\":{\"@id\":\"https:\/\/seminarsonly.com\/news\/https-www-google-com-device-sign-in-on-tvs-and-limited-input-devices\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/developers.google.com\/identity\/protocols\/images\/oauth2\/device\/user-code.png\",\"articleSection\":[\"news\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/seminarsonly.com\/news\/https-www-google-com-device-sign-in-on-tvs-and-limited-input-devices\/\",\"url\":\"https:\/\/seminarsonly.com\/news\/https-www-google-com-device-sign-in-on-tvs-and-limited-input-devices\/\",\"name\":\"https \/\/www.google.com\/device : Sign-In on TVs and Limited Input Devices - Seminarsonly.com\",\"isPartOf\":{\"@id\":\"https:\/\/seminarsonly.com\/news\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/seminarsonly.com\/news\/https-www-google-com-device-sign-in-on-tvs-and-limited-input-devices\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/seminarsonly.com\/news\/https-www-google-com-device-sign-in-on-tvs-and-limited-input-devices\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/developers.google.com\/identity\/protocols\/images\/oauth2\/device\/user-code.png\",\"datePublished\":\"2024-08-29T05:28:14+00:00\",\"dateModified\":\"2024-08-29T06:33:26+00:00\",\"author\":{\"@id\":\"https:\/\/seminarsonly.com\/news\/#\/schema\/person\/75cf706896b7210fb0a84651adc258bd\"},\"description\":\"You can let users sign in to your app with their Google accounts on devices at www.google.com\/device with limited input capabilities, such as Internet-connected TVs.\",\"breadcrumb\":{\"@id\":\"https:\/\/seminarsonly.com\/news\/https-www-google-com-device-sign-in-on-tvs-and-limited-input-devices\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/seminarsonly.com\/news\/https-www-google-com-device-sign-in-on-tvs-and-limited-input-devices\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/seminarsonly.com\/news\/https-www-google-com-device-sign-in-on-tvs-and-limited-input-devices\/#primaryimage\",\"url\":\"https:\/\/developers.google.com\/identity\/protocols\/images\/oauth2\/device\/user-code.png\",\"contentUrl\":\"https:\/\/developers.google.com\/identity\/protocols\/images\/oauth2\/device\/user-code.png\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/seminarsonly.com\/news\/https-www-google-com-device-sign-in-on-tvs-and-limited-input-devices\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/seminarsonly.com\/news\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"https \/\/www.google.com\/device : Sign-In on TVs and Limited Input Devices\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/seminarsonly.com\/news\/#website\",\"url\":\"https:\/\/seminarsonly.com\/news\/\",\"name\":\"Seminarsonly.com\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/seminarsonly.com\/news\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/seminarsonly.com\/news\/#\/schema\/person\/75cf706896b7210fb0a84651adc258bd\",\"name\":\"Freddy John\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/secure.gravatar.com\/avatar\/671d452f5fe9027ab894cbed50911cc764b2c16878222070bf044f21705d4c94?s=96&d=mm&r=g\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/671d452f5fe9027ab894cbed50911cc764b2c16878222070bf044f21705d4c94?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/671d452f5fe9027ab894cbed50911cc764b2c16878222070bf044f21705d4c94?s=96&d=mm&r=g\",\"caption\":\"Freddy John\"},\"sameAs\":[\"https:\/\/seminarsonly.com\/news\"],\"url\":\"https:\/\/seminarsonly.com\/news\/author\/anupvnaick_51wq8y4s\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"https \/\/www.google.com\/device : Sign-In on TVs and Limited Input Devices - Seminarsonly.com","description":"You can let users sign in to your app with their Google accounts on devices at www.google.com\/device with limited input capabilities, such as Internet-connected TVs.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/seminarsonly.com\/news\/https-www-google-com-device-sign-in-on-tvs-and-limited-input-devices\/","og_locale":"en_US","og_type":"article","og_title":"https \/\/www.google.com\/device : Sign-In on TVs and Limited Input Devices","og_description":"You can let users sign in to your app with their Google accounts on devices at www.google.com\/device with limited input capabilities, such as Internet-connected TVs.","og_url":"https:\/\/seminarsonly.com\/news\/https-www-google-com-device-sign-in-on-tvs-and-limited-input-devices\/","og_site_name":"Seminarsonly.com","article_publisher":"https:\/\/facebook.com\/seminarsonly","article_published_time":"2024-08-29T05:28:14+00:00","article_modified_time":"2024-08-29T06:33:26+00:00","og_image":[{"url":"https:\/\/developers.google.com\/identity\/protocols\/images\/oauth2\/device\/user-code.png","type":"","width":"","height":""}],"author":"Freddy John","twitter_card":"summary_large_image","twitter_creator":"@seminarsonly","twitter_site":"@seminarsonly","twitter_misc":{"Written by":"Freddy John","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/seminarsonly.com\/news\/https-www-google-com-device-sign-in-on-tvs-and-limited-input-devices\/#article","isPartOf":{"@id":"https:\/\/seminarsonly.com\/news\/https-www-google-com-device-sign-in-on-tvs-and-limited-input-devices\/"},"author":{"name":"Freddy John","@id":"https:\/\/seminarsonly.com\/news\/#\/schema\/person\/75cf706896b7210fb0a84651adc258bd"},"headline":"https \/\/www.google.com\/device : Sign-In on TVs and Limited Input Devices","datePublished":"2024-08-29T05:28:14+00:00","dateModified":"2024-08-29T06:33:26+00:00","mainEntityOfPage":{"@id":"https:\/\/seminarsonly.com\/news\/https-www-google-com-device-sign-in-on-tvs-and-limited-input-devices\/"},"wordCount":893,"image":{"@id":"https:\/\/seminarsonly.com\/news\/https-www-google-com-device-sign-in-on-tvs-and-limited-input-devices\/#primaryimage"},"thumbnailUrl":"https:\/\/developers.google.com\/identity\/protocols\/images\/oauth2\/device\/user-code.png","articleSection":["news"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/seminarsonly.com\/news\/https-www-google-com-device-sign-in-on-tvs-and-limited-input-devices\/","url":"https:\/\/seminarsonly.com\/news\/https-www-google-com-device-sign-in-on-tvs-and-limited-input-devices\/","name":"https \/\/www.google.com\/device : Sign-In on TVs and Limited Input Devices - Seminarsonly.com","isPartOf":{"@id":"https:\/\/seminarsonly.com\/news\/#website"},"primaryImageOfPage":{"@id":"https:\/\/seminarsonly.com\/news\/https-www-google-com-device-sign-in-on-tvs-and-limited-input-devices\/#primaryimage"},"image":{"@id":"https:\/\/seminarsonly.com\/news\/https-www-google-com-device-sign-in-on-tvs-and-limited-input-devices\/#primaryimage"},"thumbnailUrl":"https:\/\/developers.google.com\/identity\/protocols\/images\/oauth2\/device\/user-code.png","datePublished":"2024-08-29T05:28:14+00:00","dateModified":"2024-08-29T06:33:26+00:00","author":{"@id":"https:\/\/seminarsonly.com\/news\/#\/schema\/person\/75cf706896b7210fb0a84651adc258bd"},"description":"You can let users sign in to your app with their Google accounts on devices at www.google.com\/device with limited input capabilities, such as Internet-connected TVs.","breadcrumb":{"@id":"https:\/\/seminarsonly.com\/news\/https-www-google-com-device-sign-in-on-tvs-and-limited-input-devices\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/seminarsonly.com\/news\/https-www-google-com-device-sign-in-on-tvs-and-limited-input-devices\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/seminarsonly.com\/news\/https-www-google-com-device-sign-in-on-tvs-and-limited-input-devices\/#primaryimage","url":"https:\/\/developers.google.com\/identity\/protocols\/images\/oauth2\/device\/user-code.png","contentUrl":"https:\/\/developers.google.com\/identity\/protocols\/images\/oauth2\/device\/user-code.png"},{"@type":"BreadcrumbList","@id":"https:\/\/seminarsonly.com\/news\/https-www-google-com-device-sign-in-on-tvs-and-limited-input-devices\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/seminarsonly.com\/news\/"},{"@type":"ListItem","position":2,"name":"https \/\/www.google.com\/device : Sign-In on TVs and Limited Input Devices"}]},{"@type":"WebSite","@id":"https:\/\/seminarsonly.com\/news\/#website","url":"https:\/\/seminarsonly.com\/news\/","name":"Seminarsonly.com","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/seminarsonly.com\/news\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/seminarsonly.com\/news\/#\/schema\/person\/75cf706896b7210fb0a84651adc258bd","name":"Freddy John","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/671d452f5fe9027ab894cbed50911cc764b2c16878222070bf044f21705d4c94?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/671d452f5fe9027ab894cbed50911cc764b2c16878222070bf044f21705d4c94?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/671d452f5fe9027ab894cbed50911cc764b2c16878222070bf044f21705d4c94?s=96&d=mm&r=g","caption":"Freddy John"},"sameAs":["https:\/\/seminarsonly.com\/news"],"url":"https:\/\/seminarsonly.com\/news\/author\/anupvnaick_51wq8y4s\/"}]}},"_links":{"self":[{"href":"https:\/\/seminarsonly.com\/news\/wp-json\/wp\/v2\/posts\/22280","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/seminarsonly.com\/news\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/seminarsonly.com\/news\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/seminarsonly.com\/news\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/seminarsonly.com\/news\/wp-json\/wp\/v2\/comments?post=22280"}],"version-history":[{"count":0,"href":"https:\/\/seminarsonly.com\/news\/wp-json\/wp\/v2\/posts\/22280\/revisions"}],"wp:attachment":[{"href":"https:\/\/seminarsonly.com\/news\/wp-json\/wp\/v2\/media?parent=22280"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/seminarsonly.com\/news\/wp-json\/wp\/v2\/categories?post=22280"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/seminarsonly.com\/news\/wp-json\/wp\/v2\/tags?post=22280"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}