{"id":2416,"date":"2017-02-15T18:11:27","date_gmt":"2017-02-15T12:41:27","guid":{"rendered":"https:\/\/www.innovationm.com\/blog\/?p=2416"},"modified":"2017-02-15T18:11:27","modified_gmt":"2017-02-15T12:41:27","slug":"google-signin-integration-in-swift-3-0","status":"publish","type":"post","link":"https:\/\/www.innovationm.com\/blog\/google-signin-integration-in-swift-3-0\/","title":{"rendered":"Google SignIn Integration in Swift 3.0"},"content":{"rendered":"<p><strong><br \/>\nIntroduction:\u00a0Integrating your application with social media like Google, Facebook, Twitter acquires\u00a0a number of users to interact with your app or deliver highest quality engagement within the target market.<\/strong><\/p>\n<p>So here we will know about how to authenticate a user with Google to sign in with their Google account\u2014the same account they already use with Gmail, in his application.<\/p>\n<p>To start integrating your app with <strong>Google SignIn Integration in Swift 3.0,<\/strong> you need to follow the following steps:<\/p>\n<ol>\n<li style=\"text-align: left;\">Create your <strong>Xcode<\/strong> Project.<\/li>\n<li style=\"text-align: left;\">Now, open <span style=\"color: #0000ff;\"><a style=\"color: #0000ff;\" href=\"http:\/\/developers.google.com\" target=\"_blank\">http:\/\/developers.google.com<\/a><\/span>\u00a0and login with your ID. It will look like this.\n\t\t<style type=\"text\/css\">\n\t\t\t#gallery-1 {\n\t\t\t\tmargin: auto;\n\t\t\t}\n\t\t\t#gallery-1 .gallery-item {\n\t\t\t\tfloat: left;\n\t\t\t\tmargin-top: 10px;\n\t\t\t\ttext-align: center;\n\t\t\t\twidth: 100%;\n\t\t\t}\n\t\t\t#gallery-1 img {\n\t\t\t\tborder: 2px solid #cfcfcf;\n\t\t\t}\n\t\t\t#gallery-1 .gallery-caption {\n\t\t\t\tmargin-left: 0;\n\t\t\t}\n\t\t\t\/* see gallery_shortcode() in wp-includes\/media.php *\/\n\t\t<\/style>\n\t\t<div id='gallery-1' class='gallery galleryid-2416 gallery-columns-1 gallery-size-large'><dl class='gallery-item'>\n\t\t\t<dt class='gallery-icon landscape'>\n\t\t\t\t<a href='https:\/\/www.innovationm.com\/blog\/google-signin-integration-in-swift-3-0\/screen-shot-1\/'><img fetchpriority=\"high\" decoding=\"async\" width=\"1024\" height=\"635\" src=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2017\/02\/Screen-Shot-1-1024x635.png\" class=\"attachment-large size-large\" alt=\"\" srcset=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2017\/02\/Screen-Shot-1-1024x635.png 1024w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2017\/02\/Screen-Shot-1-300x186.png 300w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2017\/02\/Screen-Shot-1-624x387.png 624w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2017\/02\/Screen-Shot-1.png 1164w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a>\n\t\t\t<\/dt><\/dl><br style=\"clear: both\" \/>\n\t\t<\/div>\n\n<p>&nbsp;<\/li>\n<li><span style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Select <strong>All products<\/strong> from the Top products and platforms. It will open another page for you.<\/span><\/span>\n\t\t<style type=\"text\/css\">\n\t\t\t#gallery-2 {\n\t\t\t\tmargin: auto;\n\t\t\t}\n\t\t\t#gallery-2 .gallery-item {\n\t\t\t\tfloat: left;\n\t\t\t\tmargin-top: 10px;\n\t\t\t\ttext-align: center;\n\t\t\t\twidth: 100%;\n\t\t\t}\n\t\t\t#gallery-2 img {\n\t\t\t\tborder: 2px solid #cfcfcf;\n\t\t\t}\n\t\t\t#gallery-2 .gallery-caption {\n\t\t\t\tmargin-left: 0;\n\t\t\t}\n\t\t\t\/* see gallery_shortcode() in wp-includes\/media.php *\/\n\t\t<\/style>\n\t\t<div id='gallery-2' class='gallery galleryid-2416 gallery-columns-1 gallery-size-large'><dl class='gallery-item'>\n\t\t\t<dt class='gallery-icon landscape'>\n\t\t\t\t<a href='https:\/\/www.innovationm.com\/blog\/google-signin-integration-in-swift-3-0\/screen-shot-2\/'><img decoding=\"async\" width=\"1024\" height=\"638\" src=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2017\/02\/Screen-Shot-2-1024x638.png\" class=\"attachment-large size-large\" alt=\"\" srcset=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2017\/02\/Screen-Shot-2-1024x638.png 1024w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2017\/02\/Screen-Shot-2-300x187.png 300w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2017\/02\/Screen-Shot-2-624x389.png 624w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2017\/02\/Screen-Shot-2.png 1149w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a>\n\t\t\t<\/dt><\/dl><br style=\"clear: both\" \/>\n\t\t<\/div>\n<\/li>\n<li><span style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Select <strong>Sign-in+ Identity<\/strong> and further the <strong>Google Sign-In<\/strong>. It will look like this.<\/span><\/span>\n\t\t<style type=\"text\/css\">\n\t\t\t#gallery-3 {\n\t\t\t\tmargin: auto;\n\t\t\t}\n\t\t\t#gallery-3 .gallery-item {\n\t\t\t\tfloat: left;\n\t\t\t\tmargin-top: 10px;\n\t\t\t\ttext-align: center;\n\t\t\t\twidth: 100%;\n\t\t\t}\n\t\t\t#gallery-3 img {\n\t\t\t\tborder: 2px solid #cfcfcf;\n\t\t\t}\n\t\t\t#gallery-3 .gallery-caption {\n\t\t\t\tmargin-left: 0;\n\t\t\t}\n\t\t\t\/* see gallery_shortcode() in wp-includes\/media.php *\/\n\t\t<\/style>\n\t\t<div id='gallery-3' class='gallery galleryid-2416 gallery-columns-1 gallery-size-large'><dl class='gallery-item'>\n\t\t\t<dt class='gallery-icon landscape'>\n\t\t\t\t<a href='https:\/\/www.innovationm.com\/blog\/google-signin-integration-in-swift-3-0\/screen-shot-3\/'><img decoding=\"async\" width=\"1024\" height=\"636\" src=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2017\/02\/Screen-Shot-3-1024x636.png\" class=\"attachment-large size-large\" alt=\"\" srcset=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2017\/02\/Screen-Shot-3-1024x636.png 1024w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2017\/02\/Screen-Shot-3-300x186.png 300w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2017\/02\/Screen-Shot-3-624x388.png 624w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2017\/02\/Screen-Shot-3.png 1151w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a>\n\t\t\t<\/dt><\/dl><br style=\"clear: both\" \/>\n\t\t<\/div>\n<\/li>\n<li><span style=\"font-weight: 400;\">Select iOS on left side under guides tab. It will open a page for Google Sign-in for iOS. You need to select <\/span><b>Get Started<\/b><span style=\"font-weight: 400;\"><span style=\"font-weight: 400;\"> on the right side.<\/span><\/span>\n\t\t<style type=\"text\/css\">\n\t\t\t#gallery-4 {\n\t\t\t\tmargin: auto;\n\t\t\t}\n\t\t\t#gallery-4 .gallery-item {\n\t\t\t\tfloat: left;\n\t\t\t\tmargin-top: 10px;\n\t\t\t\ttext-align: center;\n\t\t\t\twidth: 100%;\n\t\t\t}\n\t\t\t#gallery-4 img {\n\t\t\t\tborder: 2px solid #cfcfcf;\n\t\t\t}\n\t\t\t#gallery-4 .gallery-caption {\n\t\t\t\tmargin-left: 0;\n\t\t\t}\n\t\t\t\/* see gallery_shortcode() in wp-includes\/media.php *\/\n\t\t<\/style>\n\t\t<div id='gallery-4' class='gallery galleryid-2416 gallery-columns-1 gallery-size-large'><dl class='gallery-item'>\n\t\t\t<dt class='gallery-icon landscape'>\n\t\t\t\t<a href='https:\/\/www.innovationm.com\/blog\/google-signin-integration-in-swift-3-0\/screen-shot-4\/'><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"581\" src=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2017\/02\/Screen-Shot-4-1024x581.png\" class=\"attachment-large size-large\" alt=\"\" srcset=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2017\/02\/Screen-Shot-4-1024x581.png 1024w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2017\/02\/Screen-Shot-4-300x170.png 300w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2017\/02\/Screen-Shot-4-624x354.png 624w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2017\/02\/Screen-Shot-4.png 1149w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a>\n\t\t\t<\/dt><\/dl><br style=\"clear: both\" \/>\n\t\t<\/div>\n<\/li>\n<li><span style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Now click on <strong>Get a configuration file<\/strong> as shown below:<\/span><\/span>\n\t\t<style type=\"text\/css\">\n\t\t\t#gallery-5 {\n\t\t\t\tmargin: auto;\n\t\t\t}\n\t\t\t#gallery-5 .gallery-item {\n\t\t\t\tfloat: left;\n\t\t\t\tmargin-top: 10px;\n\t\t\t\ttext-align: center;\n\t\t\t\twidth: 100%;\n\t\t\t}\n\t\t\t#gallery-5 img {\n\t\t\t\tborder: 2px solid #cfcfcf;\n\t\t\t}\n\t\t\t#gallery-5 .gallery-caption {\n\t\t\t\tmargin-left: 0;\n\t\t\t}\n\t\t\t\/* see gallery_shortcode() in wp-includes\/media.php *\/\n\t\t<\/style>\n\t\t<div id='gallery-5' class='gallery galleryid-2416 gallery-columns-1 gallery-size-large'><dl class='gallery-item'>\n\t\t\t<dt class='gallery-icon landscape'>\n\t\t\t\t<a href='https:\/\/www.innovationm.com\/blog\/google-signin-integration-in-swift-3-0\/screen-shot-5\/'><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"580\" src=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2017\/02\/Screen-Shot-5-1024x580.png\" class=\"attachment-large size-large\" alt=\"\" srcset=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2017\/02\/Screen-Shot-5-1024x580.png 1024w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2017\/02\/Screen-Shot-5-300x170.png 300w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2017\/02\/Screen-Shot-5-624x354.png 624w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2017\/02\/Screen-Shot-5.png 1149w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a>\n\t\t\t<\/dt><\/dl><br style=\"clear: both\" \/>\n\t\t<\/div>\n<\/li>\n<li><span style=\"font-weight: 400;\">It will open a dashboard in which you need to add your app details:<\/span>\n<ol>\n<li><span style=\"font-weight: 400;\"><strong>Project name<\/strong> you want to configure with Google.<\/span><\/li>\n<li><span style=\"font-weight: 400;\"><span style=\"font-weight: 400;\"><strong>Bundle Identifier<\/strong> of your project. It will look like this when\u00a0you enter both.<\/span><\/span>\n\t\t<style type=\"text\/css\">\n\t\t\t#gallery-6 {\n\t\t\t\tmargin: auto;\n\t\t\t}\n\t\t\t#gallery-6 .gallery-item {\n\t\t\t\tfloat: left;\n\t\t\t\tmargin-top: 10px;\n\t\t\t\ttext-align: center;\n\t\t\t\twidth: 100%;\n\t\t\t}\n\t\t\t#gallery-6 img {\n\t\t\t\tborder: 2px solid #cfcfcf;\n\t\t\t}\n\t\t\t#gallery-6 .gallery-caption {\n\t\t\t\tmargin-left: 0;\n\t\t\t}\n\t\t\t\/* see gallery_shortcode() in wp-includes\/media.php *\/\n\t\t<\/style>\n\t\t<div id='gallery-6' class='gallery galleryid-2416 gallery-columns-1 gallery-size-large'><dl class='gallery-item'>\n\t\t\t<dt class='gallery-icon landscape'>\n\t\t\t\t<a href='https:\/\/www.innovationm.com\/blog\/google-signin-integration-in-swift-3-0\/screen-shot-6\/'><img loading=\"lazy\" decoding=\"async\" width=\"785\" height=\"502\" src=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2017\/02\/Screen-Shot-6.png\" class=\"attachment-large size-large\" alt=\"\" srcset=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2017\/02\/Screen-Shot-6.png 785w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2017\/02\/Screen-Shot-6-300x192.png 300w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2017\/02\/Screen-Shot-6-624x399.png 624w\" sizes=\"(max-width: 785px) 100vw, 785px\" \/><\/a>\n\t\t\t<\/dt><\/dl><br style=\"clear: both\" \/>\n\t\t<\/div>\n\n<p>&nbsp;<\/li>\n<\/ol>\n<\/li>\n<li><span style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Now click on <strong>Choose and Configure services<\/strong> and you are already selected with Google Sign-in. Then continue to <strong>Generate Configuration File<\/strong>.<\/span><\/span>\n\t\t<style type=\"text\/css\">\n\t\t\t#gallery-7 {\n\t\t\t\tmargin: auto;\n\t\t\t}\n\t\t\t#gallery-7 .gallery-item {\n\t\t\t\tfloat: left;\n\t\t\t\tmargin-top: 10px;\n\t\t\t\ttext-align: center;\n\t\t\t\twidth: 100%;\n\t\t\t}\n\t\t\t#gallery-7 img {\n\t\t\t\tborder: 2px solid #cfcfcf;\n\t\t\t}\n\t\t\t#gallery-7 .gallery-caption {\n\t\t\t\tmargin-left: 0;\n\t\t\t}\n\t\t\t\/* see gallery_shortcode() in wp-includes\/media.php *\/\n\t\t<\/style>\n\t\t<div id='gallery-7' class='gallery galleryid-2416 gallery-columns-1 gallery-size-large'><dl class='gallery-item'>\n\t\t\t<dt class='gallery-icon landscape'>\n\t\t\t\t<a href='https:\/\/www.innovationm.com\/blog\/google-signin-integration-in-swift-3-0\/screen-shot-7\/'><img loading=\"lazy\" decoding=\"async\" width=\"757\" height=\"623\" src=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2017\/02\/Screen-Shot-7.png\" class=\"attachment-large size-large\" alt=\"\" srcset=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2017\/02\/Screen-Shot-7.png 757w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2017\/02\/Screen-Shot-7-300x247.png 300w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2017\/02\/Screen-Shot-7-624x514.png 624w\" sizes=\"(max-width: 757px) 100vw, 757px\" \/><\/a>\n\t\t\t<\/dt><\/dl><br style=\"clear: both\" \/>\n\t\t<\/div>\n\n<p>&nbsp;<\/li>\n<li><span style=\"font-weight: 400;\">Then Download the <strong>Google services Info.plist<\/strong> and add it to your project\u2019s root directory.<\/span><\/li>\n<li><span style=\"font-weight: 400;\">Now come to your Xcode project as you need to make changes here. In the <\/span><b>Project &gt; Target &gt; Info<\/b><span style=\"font-weight: 400;\">. Open <strong>URL\u00a0types<\/strong> below and paste <\/span><b>Reverse client ID<\/b><span style=\"font-weight: 400;\"> into url schemes column.<\/span><\/li>\n<li><span style=\"font-weight: 400;\"><span style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Now from where you&#8217;ll get that Reverse Client ID. Open <strong>Google services Info.plist<\/strong> that you have just added and copy <strong>Reverse ClientID<\/strong> from here and paste it into<strong> url schemes <\/strong>as shown.<br \/>\n<a href=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2017\/02\/Screen-Shot-81.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-2678 size-full\" src=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2017\/02\/Screen-Shot-81.png\" alt=\"Screen Shot 8\" width=\"1019\" height=\"711\" srcset=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2017\/02\/Screen-Shot-81.png 1019w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2017\/02\/Screen-Shot-81-300x209.png 300w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2017\/02\/Screen-Shot-81-624x435.png 624w\" sizes=\"(max-width: 1019px) 100vw, 1019px\" \/><\/a><\/span><\/span><\/span><\/li>\n<li><span style=\"font-weight: 400;\">Now you need to install <strong>Cocoa pods<\/strong> if not available on your system.<\/span><\/li>\n<li><span style=\"font-weight: 400;\">Open your project root directory for the Pod file creation if it is not created yet. Now open <strong>Terminal<\/strong> and go upto your project root directory.<\/span><\/li>\n<li><span style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Write\u00a0<strong>pod<\/strong> <strong>&#8216;Google\/SignIn&#8217;<\/strong>\u00a0in the pod file you have just created above the line # Pods for GoogleSigninIntegration.<\/span><\/span>\n\t\t<style type=\"text\/css\">\n\t\t\t#gallery-8 {\n\t\t\t\tmargin: auto;\n\t\t\t}\n\t\t\t#gallery-8 .gallery-item {\n\t\t\t\tfloat: left;\n\t\t\t\tmargin-top: 10px;\n\t\t\t\ttext-align: center;\n\t\t\t\twidth: 100%;\n\t\t\t}\n\t\t\t#gallery-8 img {\n\t\t\t\tborder: 2px solid #cfcfcf;\n\t\t\t}\n\t\t\t#gallery-8 .gallery-caption {\n\t\t\t\tmargin-left: 0;\n\t\t\t}\n\t\t\t\/* see gallery_shortcode() in wp-includes\/media.php *\/\n\t\t<\/style>\n\t\t<div id='gallery-8' class='gallery galleryid-2416 gallery-columns-1 gallery-size-large'><dl class='gallery-item'>\n\t\t\t<dt class='gallery-icon landscape'>\n\t\t\t\t<a href='https:\/\/www.innovationm.com\/blog\/google-signin-integration-in-swift-3-0\/screen-shot-9\/'><img loading=\"lazy\" decoding=\"async\" width=\"657\" height=\"430\" src=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2017\/02\/Screen-Shot-9.png\" class=\"attachment-large size-large\" alt=\"\" srcset=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2017\/02\/Screen-Shot-9.png 657w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2017\/02\/Screen-Shot-9-300x196.png 300w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2017\/02\/Screen-Shot-9-624x408.png 624w\" sizes=\"(max-width: 657px) 100vw, 657px\" \/><\/a>\n\t\t\t<\/dt><\/dl><br style=\"clear: both\" \/>\n\t\t<\/div>\n\n<p>&nbsp;<\/li>\n<li><span style=\"font-weight: 400;\">Run command <strong>pod install<\/strong> in the terminal. It will install all dependencies for the Google Sign In Integration.<\/span><\/li>\n<li><b><\/b><span style=\"font-weight: 400;\">Close Terminal and open your xcode <\/span><b>.<\/b><b>workspace<\/b><span style=\"font-weight: 400;\"> file <\/span><span style=\"font-weight: 400;\">in your project directory<\/span><span style=\"font-weight: 400;\">.<\/span>\n\t\t<style type=\"text\/css\">\n\t\t\t#gallery-9 {\n\t\t\t\tmargin: auto;\n\t\t\t}\n\t\t\t#gallery-9 .gallery-item {\n\t\t\t\tfloat: left;\n\t\t\t\tmargin-top: 10px;\n\t\t\t\ttext-align: center;\n\t\t\t\twidth: 50%;\n\t\t\t}\n\t\t\t#gallery-9 img {\n\t\t\t\tborder: 2px solid #cfcfcf;\n\t\t\t}\n\t\t\t#gallery-9 .gallery-caption {\n\t\t\t\tmargin-left: 0;\n\t\t\t}\n\t\t\t\/* see gallery_shortcode() in wp-includes\/media.php *\/\n\t\t<\/style>\n\t\t<div id='gallery-9' class='gallery galleryid-2416 gallery-columns-2 gallery-size-medium'><dl class='gallery-item'>\n\t\t\t<dt class='gallery-icon landscape'>\n\t\t\t\t<a href='https:\/\/www.innovationm.com\/blog\/google-signin-integration-in-swift-3-0\/screen-shot-10\/'><img loading=\"lazy\" decoding=\"async\" width=\"300\" height=\"270\" src=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2017\/02\/Screen-Shot-10-300x270.png\" class=\"attachment-medium size-medium\" alt=\"\" srcset=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2017\/02\/Screen-Shot-10-300x270.png 300w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2017\/02\/Screen-Shot-10.png 412w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a>\n\t\t\t<\/dt><\/dl>\n\t\t\t<br style='clear: both' \/>\n\t\t<\/div>\n\n<p><span style=\"font-weight: 400;\">Note:<\/span><span style=\"font-weight: 400;\"> If you open <strong>.xcodeproj<\/strong> file then you won\u2019t get pod dependencies in your project. And, it will throw error that dependency files are not found.<\/span><\/li>\n<li><span style=\"font-weight: 400;\"> Import <\/span><b>GGLSignIn<\/b><span style=\"font-weight: 400;\"> and <\/span><b>GoogleSignIn<\/b><span style=\"font-weight: 400;\"> in your App Delegate Class.<\/span><\/li>\n<li><b><\/b><span style=\"font-weight: 400;\">Now, configure Google for error in AppDelegate.swift. Implement the <\/span><strong>application:openURL:options:<\/strong><span style=\"font-weight: 400;\"> method of your app delegate. The method should call the <\/span><strong>handleURL<\/strong><span style=\"font-weight: 400;\"> method of the <\/span><strong>GIDSignIn<\/strong><span style=\"font-weight: 400;\"> instance, which will properly handle the URL that your application receives at the end of the authentication process.<\/span> <span style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Your <strong>App Delegate<\/strong> should look like:<\/span><\/span>\n<pre class=\"lang:swift decode:true\">import UIKit\r\nimport GGLSignIn\r\nimport GoogleSignIn\r\n\r\n@UIApplicationMain\r\nclass AppDelegate: UIResponder, UIApplicationDelegate {\r\n\r\n    var window: UIWindow?\r\n\r\n    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -&gt; Bool {\r\n        \/\/ Override point for customization after application launch.\r\n        \r\n        \/\/ Initialize Google sign-in\r\n        var configureError: NSError?\r\n        GGLContext.sharedInstance().configureWithError(&amp;configureError)\r\n        assert(configureError == nil, \"Error configuring Google services: \\(configureError)\")\r\n        \r\n        return true\r\n    }\r\n\r\n    \r\n    func application(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any] = [:]) -&gt; Bool {\r\n        return GIDSignIn.sharedInstance().handle(url, sourceApplication: options[.sourceApplication] as? String, annotation: options[.annotation])\r\n    }\r\n<\/pre>\n<\/li>\n<li><span style=\"font-weight: 400;\">Next, you will add the <strong>Google Sign-In Button<\/strong> so that the user can initiate the sign-in process. You can add it in two ways: via<\/span><b> Custom Button <\/b><span style=\"font-weight: 400;\">or the <\/span><b>Google SignIn Button.<\/b><span style=\"font-weight: 400;\">Make the following changes to the view controller that manages your app&#8217;s sign-in screen.<\/span>\n<ul>\n<li><span style=\"font-weight: 400;\"><strong>For the<\/strong> <strong>Default Button<\/strong><\/span> <span style=\"font-weight: 400;\">add the UIView in your storyboard and set\u00a0its custom class to <\/span><b>GIDSignInButton. <\/b><span style=\"font-weight: 400;\">It will automatically call <strong>signin()<\/strong> method for the Google.<\/span><\/li>\n<li><strong>For the<\/strong> <strong>Custom button<\/strong> you need to make its IBAction method and write:<b> \u00a0GIDSignIn.sharedInstance().signIn() <\/b>in that method.<\/li>\n<\/ul>\n<\/li>\n<li><span style=\"font-weight: 400;\">In the view controller, declare that this class implements the <\/span><span style=\"font-weight: 400;\">GIDSignInUIDelegate<\/span><span style=\"font-weight: 400;\"> protocol.<\/span>\n<pre class=\"lang:swift decode:true \">class ViewController: UIViewController, GIDSignInUIDelegate {\r\noverride func viewDidLoad() {\r\n  super.viewDidLoad()\r\nGIDSignIn.sharedInstance().uidelegate = self\r\n}\r\n}<\/pre>\n<p><span style=\"font-weight: 400;\">Now, implement the <\/span><b>signInWillDispatch:error:\u00a0<\/b><span style=\"font-weight: 400;\">, <\/span><b>signIn:presentViewController:\u00a0<\/b><span style=\"font-weight: 400;\">, and <\/span><b>signIn:dismissViewController:<\/b><span style=\"font-weight: 400;\"> methods of the <\/span><b>GIDSignInUIDelegate<\/b><span style=\"font-weight: 400;\"> protocol.<\/span><\/p>\n<pre class=\"lang:default decode:true\"> func sign(inWillDispatch signIn: GIDSignIn!, error: Error!) {\r\nmyActivityIndicator.stopAnimating()\r\n    \t\t}\r\n    \r\n \/\/ Present a view that prompts the user to sign in with Google\r\n    func sign(_ signIn: GIDSignIn!, present viewController: UIViewController!) {\r\n        \t\t    present(viewController, animated: true, completion: nil)\r\n    \t\t}\r\n    \r\n \/\/ Dismiss the \"Sign in with Google\" view\r\n    func sign(_ signIn: GIDSignIn!, dismiss viewController: UIViewController!) {\r\n    \t\t    viewController.dismiss(animated: true, completion: nil)\r\n \t   }<\/pre>\n<\/li>\n<li>Implement the <b>GIDSignInDelegate<\/b> to your View Controller class.\n<pre class=\"lang:swift decode:true\">class ViewController: UIViewController, GIDSignInDelegate {<\/pre>\n<\/li>\n<li>Set the delegate property in your viewDidLoad() method as:\n<pre class=\"lang:swift decode:true\">GIDSignIn.sharedInstance().delegate = self<\/pre>\n<p>Or you can set its delegate to any class if you don\u2019t want to make your view Controller bulky. If you do so then you need to implement <b>GIDSignInDelegate <\/b>in that class.<\/li>\n<li>After this define the following delegate methods. These method will get call back when we have loggedIn for Google in which we can either get all the user details or the error that occurred.\n<pre class=\"lang:swift decode:true\">func sign(_ signIn: GIDSignIn!, didSignInFor user: GIDGoogleUser!, withError error: Error!) {\r\n        if (error == nil) { \r\n     let userId = user.userID         \r\n     let idToken = user.authentication.idToken \/\/ Safe to send to the server\r\n \t     let fullName = user.profile.name\r\n  \t     let givenName = user.profile.givenName\r\n   \t     let familyName = user.profile.familyName\r\n   \t     let email = user.profile.email\r\n   \t     } else {\r\n    \t        let nserr = error as NSError\r\n     \t       if nserr.code == errorCodeCancelled (-5 for google) {  \r\n\/\/ Cancelled task\r\n                \r\n         \t   } else {\r\n                \/\/handle error other than cancelling\r\nprint(nserr)\r\n       \t\t     }\r\n        \t\t}\r\n    \t}<\/pre>\n<\/li>\n<li><strong>Logout handling:<\/strong><br \/>\nNow\u00a0if you want to logout from your account and want to signin from a different account, then you need to call\u00a0<b>GIDSignIn.sharedInstance().disconnect().\u00a0<\/b>For this you need to define delegate method of the\u00a0<b>GIDSignInDelegate<\/b> for its call back.<\/p>\n<pre class=\"lang:swift decode:true\">func sign(_ signIn: GIDSignIn!, didDisconnectWith user: GIDGoogleUser!, withError error: Error!) {\r\n        \r\n   \t     \/\/SignOut\r\n        if error != nil {\r\n\t\t\/\/handle error\r\n       \t         print(err)\r\n      \t  }\r\n  \t  }<\/pre>\n<p>This method is called when you call <strong>disconnect()<\/strong> from <strong>GIDSignIn<\/strong> instance<br \/>\n<strong>Note:<\/strong> This is applicable in case of Custom Button if we have its IBAction method. We cant call logout for default button.<\/p>\n<ol>\n<li><span style=\"font-weight: 400;\">Now run your project and you have the Google sign In button on your screen. Click on it and it will get navigate on to safari and asks you to enter your details. On signing in you will get back to your app with your account information fetched\u00a0in <\/span><b>GIDSignInDelegate<\/b><span style=\"font-weight: 400;\"><span style=\"font-weight: 400;\"><span style=\"font-weight: 400;\"> method.<\/span><\/span><\/span><br \/>\nThis is all about the <strong>Google SignIn Integration in Swift 3.0.<\/strong>\u00a0\ud83d\ude42<\/li>\n<\/ol>\n<\/li>\n<\/ol>\n","protected":false},"excerpt":{"rendered":"<p>Introduction:\u00a0Integrating your application with social media like Google, Facebook, Twitter acquires\u00a0a number of users to interact with your app or deliver highest quality engagement within the target market. So here we will know about how to authenticate a user with Google to sign in with their Google account\u2014the same account they already use with Gmail, [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":2711,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[71,63],"tags":[],"class_list":["post-2416","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-mobile","category-social-media-integration"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Google SignIn Integration in Swift 3.0 | InnovationM Blog<\/title>\n<meta name=\"description\" content=\"Google SignIn Integration in Swift 3.0\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.innovationm.com\/blog\/google-signin-integration-in-swift-3-0\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Google SignIn Integration in Swift 3.0 | InnovationM Blog\" \/>\n<meta property=\"og:description\" content=\"Google SignIn Integration in Swift 3.0\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.innovationm.com\/blog\/google-signin-integration-in-swift-3-0\/\" \/>\n<meta property=\"og:site_name\" content=\"InnovationM - Blog\" \/>\n<meta property=\"article:published_time\" content=\"2017-02-15T12:41:27+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2017\/02\/Google-SignIn-Integration.png\" \/>\n\t<meta property=\"og:image:width\" content=\"624\" \/>\n\t<meta property=\"og:image:height\" content=\"347\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"InnovationM Admin\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"InnovationM Admin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/google-signin-integration-in-swift-3-0\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/google-signin-integration-in-swift-3-0\\\/\"},\"author\":{\"name\":\"InnovationM Admin\",\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/#\\\/schema\\\/person\\\/a831bf4602d69d1fa452e3de0c8862ed\"},\"headline\":\"Google SignIn Integration in Swift 3.0\",\"datePublished\":\"2017-02-15T12:41:27+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/google-signin-integration-in-swift-3-0\\\/\"},\"wordCount\":874,\"commentCount\":0,\"image\":{\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/google-signin-integration-in-swift-3-0\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/wp-content\\\/uploads\\\/2017\\\/02\\\/Google-SignIn-Integration.png\",\"articleSection\":[\"Mobile\",\"Social Media Integration\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/google-signin-integration-in-swift-3-0\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/google-signin-integration-in-swift-3-0\\\/\",\"url\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/google-signin-integration-in-swift-3-0\\\/\",\"name\":\"Google SignIn Integration in Swift 3.0 | InnovationM Blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/google-signin-integration-in-swift-3-0\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/google-signin-integration-in-swift-3-0\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/wp-content\\\/uploads\\\/2017\\\/02\\\/Google-SignIn-Integration.png\",\"datePublished\":\"2017-02-15T12:41:27+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/#\\\/schema\\\/person\\\/a831bf4602d69d1fa452e3de0c8862ed\"},\"description\":\"Google SignIn Integration in Swift 3.0\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/google-signin-integration-in-swift-3-0\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/google-signin-integration-in-swift-3-0\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/google-signin-integration-in-swift-3-0\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/wp-content\\\/uploads\\\/2017\\\/02\\\/Google-SignIn-Integration.png\",\"contentUrl\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/wp-content\\\/uploads\\\/2017\\\/02\\\/Google-SignIn-Integration.png\",\"width\":624,\"height\":347},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/google-signin-integration-in-swift-3-0\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Google SignIn Integration in Swift 3.0\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/\",\"name\":\"InnovationM - Blog\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/#\\\/schema\\\/person\\\/a831bf4602d69d1fa452e3de0c8862ed\",\"name\":\"InnovationM Admin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/5c99d9eece9dfbc82297cf34ddd58e9fe05bb52fe66c8f6bf6c0a45bfb6d7629?s=96&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/5c99d9eece9dfbc82297cf34ddd58e9fe05bb52fe66c8f6bf6c0a45bfb6d7629?s=96&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/5c99d9eece9dfbc82297cf34ddd58e9fe05bb52fe66c8f6bf6c0a45bfb6d7629?s=96&r=g\",\"caption\":\"InnovationM Admin\"},\"sameAs\":[\"http:\\\/\\\/www.innovationm.com\\\/\"],\"url\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/author\\\/innovationmadmin\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Google SignIn Integration in Swift 3.0 | InnovationM Blog","description":"Google SignIn Integration in Swift 3.0","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:\/\/www.innovationm.com\/blog\/google-signin-integration-in-swift-3-0\/","og_locale":"en_US","og_type":"article","og_title":"Google SignIn Integration in Swift 3.0 | InnovationM Blog","og_description":"Google SignIn Integration in Swift 3.0","og_url":"https:\/\/www.innovationm.com\/blog\/google-signin-integration-in-swift-3-0\/","og_site_name":"InnovationM - Blog","article_published_time":"2017-02-15T12:41:27+00:00","og_image":[{"width":624,"height":347,"url":"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2017\/02\/Google-SignIn-Integration.png","type":"image\/png"}],"author":"InnovationM Admin","twitter_misc":{"Written by":"InnovationM Admin","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.innovationm.com\/blog\/google-signin-integration-in-swift-3-0\/#article","isPartOf":{"@id":"https:\/\/www.innovationm.com\/blog\/google-signin-integration-in-swift-3-0\/"},"author":{"name":"InnovationM Admin","@id":"https:\/\/www.innovationm.com\/blog\/#\/schema\/person\/a831bf4602d69d1fa452e3de0c8862ed"},"headline":"Google SignIn Integration in Swift 3.0","datePublished":"2017-02-15T12:41:27+00:00","mainEntityOfPage":{"@id":"https:\/\/www.innovationm.com\/blog\/google-signin-integration-in-swift-3-0\/"},"wordCount":874,"commentCount":0,"image":{"@id":"https:\/\/www.innovationm.com\/blog\/google-signin-integration-in-swift-3-0\/#primaryimage"},"thumbnailUrl":"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2017\/02\/Google-SignIn-Integration.png","articleSection":["Mobile","Social Media Integration"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.innovationm.com\/blog\/google-signin-integration-in-swift-3-0\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.innovationm.com\/blog\/google-signin-integration-in-swift-3-0\/","url":"https:\/\/www.innovationm.com\/blog\/google-signin-integration-in-swift-3-0\/","name":"Google SignIn Integration in Swift 3.0 | InnovationM Blog","isPartOf":{"@id":"https:\/\/www.innovationm.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.innovationm.com\/blog\/google-signin-integration-in-swift-3-0\/#primaryimage"},"image":{"@id":"https:\/\/www.innovationm.com\/blog\/google-signin-integration-in-swift-3-0\/#primaryimage"},"thumbnailUrl":"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2017\/02\/Google-SignIn-Integration.png","datePublished":"2017-02-15T12:41:27+00:00","author":{"@id":"https:\/\/www.innovationm.com\/blog\/#\/schema\/person\/a831bf4602d69d1fa452e3de0c8862ed"},"description":"Google SignIn Integration in Swift 3.0","breadcrumb":{"@id":"https:\/\/www.innovationm.com\/blog\/google-signin-integration-in-swift-3-0\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.innovationm.com\/blog\/google-signin-integration-in-swift-3-0\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.innovationm.com\/blog\/google-signin-integration-in-swift-3-0\/#primaryimage","url":"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2017\/02\/Google-SignIn-Integration.png","contentUrl":"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2017\/02\/Google-SignIn-Integration.png","width":624,"height":347},{"@type":"BreadcrumbList","@id":"https:\/\/www.innovationm.com\/blog\/google-signin-integration-in-swift-3-0\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.innovationm.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Google SignIn Integration in Swift 3.0"}]},{"@type":"WebSite","@id":"https:\/\/www.innovationm.com\/blog\/#website","url":"https:\/\/www.innovationm.com\/blog\/","name":"InnovationM - Blog","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.innovationm.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.innovationm.com\/blog\/#\/schema\/person\/a831bf4602d69d1fa452e3de0c8862ed","name":"InnovationM Admin","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/5c99d9eece9dfbc82297cf34ddd58e9fe05bb52fe66c8f6bf6c0a45bfb6d7629?s=96&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/5c99d9eece9dfbc82297cf34ddd58e9fe05bb52fe66c8f6bf6c0a45bfb6d7629?s=96&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/5c99d9eece9dfbc82297cf34ddd58e9fe05bb52fe66c8f6bf6c0a45bfb6d7629?s=96&r=g","caption":"InnovationM Admin"},"sameAs":["http:\/\/www.innovationm.com\/"],"url":"https:\/\/www.innovationm.com\/blog\/author\/innovationmadmin\/"}]}},"_links":{"self":[{"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/posts\/2416","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/comments?post=2416"}],"version-history":[{"count":0,"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/posts\/2416\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/media\/2711"}],"wp:attachment":[{"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/media?parent=2416"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/categories?post=2416"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/tags?post=2416"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}