Google+ sign in for mobile & web apps


Published on

Allow users to securely sign in to your app and create a more powerful and engaging experience. Google+ Sign-in also lets you grow your app engagement by letting your signed-in users create interactive posts to invite their friends to use your app. By connecting your users with Google, you will soon be able to influence your appearance in Google Play through trusted social recommendations that show your users their friends who are already using your app.

The Google+ Sign-In button authenticates the user and manages the OAuth 2.0 flow, which simplifies your integration with the Google APIs. Signing in is required for your app to create interactive posts, manage moments, and fetch profile and people information.

Published in: Technology, News & Politics
  • Be the first to comment

  • Be the first to like this

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

Google+ sign in for mobile & web apps

  1. 1. Google+ Sign-in for Mobile and Web By +Lakhdar Meftah
  2. 2. Simple, secure authentication Interactive posts Over-the-air installs Integrated Hangouts Profile & social graph access Lasting re- engagement Engagement analytics Google+ plugins
  3. 3. Google+ Sign-In Simple, secure authentication Build on a trusted relationship Works with your existing sign-in systems Cross-platform single sign on Avoid the hassle of creating your own authentication system Learn more about your users and their friend Give users more choice
  4. 4. Interactive Posts Stand out in the stream Drive action Customize the post Measure impact Interactive post flow Pull people into your app to take specific actions
  5. 5. Over-The-Air Installs Stay connected to users across their devices Drive automatic Android downloads from your website sign-ins One-step download to a user's device Measure your downloads
  6. 6. Google+ Hangouts: Some things are better face to face
  7. 7. App Customization Customize content and suggest connections for your users Improve engagement through users' connections Create accurate profiles Connect friends Spark content discovery Create dynamic marketing campaigns
  8. 8. App Activities Increase app discovery and drive lasting re-engagement Build conversations and share activities that matter App activities in Google Search Be found on user's Google+ profile
  9. 9. Google+ Platform Insights Meaningful analytics to optimize your integration Get the most out of Google+ Sign-In Understand your users Dig deeper into post performance Optimize your integration based on user activity Monitor installs to your Android app
  10. 10. Plugins Grow your audience through identity, relationships, and sharing. +1 button Badge Recommendations Share Follow button Snippest
  11. 11. In Depth
  12. 12. 1. Enable the Google+ API 2. Configure your Eclipse project 3. Run the Google+ sample app 4. Initialize the PlusClient 1. Create a Google APIs Console project .
  13. 13. 1.Add the Google+ Sign-In button to your app 2.Sign out the user 3.Revoking access tokens and disconnecting the app 4.Customizing your sign-in button 5.Localization 6.Server-side access for your app 2. Google+ Sign in for Android
  14. 14. 1.Add the SignInButton in your application's layout: < android:id="@+id/sign_in_button" android:layout_width="wrap_content" android:layout_height="wrap_content" /> 2.Initialize mPlusClient with the requested visible activities in your Activity.onCreate handler: protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); mPlusClient = new PlusClient.Builder(this, this, this) .setVisibleActivities("", "") .build(); } 3.In the Android activity, register your button's OnClickListener to sign in the user when clicked: findViewById(; Add the Google+ Sign-In button
  15. 15. 4.You should start to resolve any connection errors held in mConnectionResult. public void onClick(View view) { if (view.getId() == && !mPlusClient.isConnected()) { if (mConnectionResult == null) {; } else { try { mConnectionResult.startResolutionForResult(this, REQUEST_CODE_RESOLVE_ERR); } catch (SendIntentException e) { // Try connecting again. mConnectionResult = null; mPlusClient.connect(); } } } } 5.When the user has successfully signed in, your onConnected handler will be called: public void onConnected(Bundle connectionHint) { mConnectionProgressDialog.dismiss(); Toast.makeText(this, "User is connected!", Toast.LENGTH_LONG).show(); }
  16. 16. Sign out the user You can add a sign out button to your app. Create a button in your app to act as your sign out button. Attach an onClickListener to the button and configure the onClickmethod to disconnect the PlusClient: public void onClick(View view) { if (view.getId() == { if (mPlusClient.isConnected()) { mPlusClient.clearDefaultAccount(); mPlusClient.disconnect(); mPlusClient.connect(); } } } This code clears which account is connected to the app. To sign in again, the user would choose their account again.
  17. 17. Revoking access tokens and disconnecting the app The following code shows a simple example of calling the PlusClient.revokeAccessAndDisconnect method and responding to the onAccessRevoked event: // Prior to disconnecting, run clearDefaultAccount(). mPlusClient.clearDefaultAccount(); mPlusClient.revokeAccessAndDisconnect(new OnAccessRevokedListener() { public void onAccessRevoked(ConnectionResult status) { // mPlusClient is now disconnected and access has been revoked. // Trigger app logic to comply with the developer policies } });
  18. 18. Customizing your sign-in button If you require additional customization, you can define a custom button: 1.Review the branding guidelines and download icons and images to use in your button. 2.Add the button to your application layout. <Button android:id="@+id/button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:text="@string/common_signin_button_text_long" /> Localization The SDK provides localized strings for the SignInButton To view a full list of languages, you can examine the following directory in the SDK: <android-sdk-folder>/extras/google/google_play_services/libproject/google- play-services_lib/res/. In that location, you will find directories named values-<langcode>.
  19. 19. Server-side access for your app Bundle appActivities = new Bundle(); appActivities.putString(GoogleAuthUtil.KEY_REQUEST_VISIBLE_ACTIVITIES, "<app-activity1> <app-activity2>"); String scopes = "oauth2:server:client_id:<server client-id>:api_scope:<scope1> <scope2>"; String code = null; try { code = GoogleAuthUtil.getToken(this, // Context context mPlusClient.getAccountName(), // String accountName scopes, // String scope appActivities // Bundle bundle ); } catch (IOException transientEx) { // network or server error, return; } catch (UserRecoverableAuthException e) { // Recover code = null; } catch (GoogleAuthException authEx) { // Failure. return; } catch (Exception e) { throw new RuntimeException(e); }
  20. 20. String accessToken = null; try { accessToken = GoogleAuthUtil.getToken(this, mPlusClient.getAccountName(), "oauth2:" + TextUtils.join(' ', SCOPES)); } catch (IOException transientEx) { // network or server error, the call is expected to succeed if you try again later. // Don't attempt to call again immediately - the request is likely to // fail, you'll hit quotas or back-off. ... return; } catch (UserRecoverableAuthException e) { // Recover accessToken = null; } catch (GoogleAuthException authEx) { // Failure. The call is not expected to ever succeed so it should not be // retried. return; } catch (Exception e) { throw new RuntimeException(e); } To learn more, see: + Android Authorization methods. + Cross client identity
  21. 21. References The Google+ Platform The Google+ Platform Channel on YouTube The Google+ Developers Blog
  22. 22. Thank You +Me +GDG Algiers +GDG Women Algiers