Android SDK 2.3.0

From Social ID Developers
(Difference between revisions)
Jump to: navigation, search
(Logout)
 
(7 intermediate revisions by one user not shown)
Line 8: Line 8:
  
 
   import com.coffeebeantech.socialidsdk.SocialId;
 
   import com.coffeebeantech.socialidsdk.SocialId;
  import com.coffeebeantech.socialidsdk.exceptions.SocialIdSDKException;
 
  import com.coffeebeantech.socialidsdk.util.Provider;
 
  
Add the following code to the end of the onCreate() method:
+
Configure all providers you'll support. This can be performed in your Activity's ''onCreate()'' method.
  
   try {
+
   import com.coffeebeantech.socialidsdk.sociallogin.providers.FacebookConfiguration;
     SocialId.configLogin(this, new LoginEventListenerImpl(this));
+
  import com.coffeebeantech.socialidsdk.sociallogin.providers.GplusConfiguration;
   } catch (SocialIdSDKException e) {
+
  import com.coffeebeantech.socialidsdk.sociallogin.providers.LinkedinConfiguration;
     e.printStackTrace();
+
  import com.coffeebeantech.socialidsdk.sociallogin.providers.TwitterConfiguration;
   }
+
 
 +
  // Facebook configuration
 +
  // Extra permissions are optional
 +
  FacebookConfiguration facebookConfiguration = new FacebookConfiguration()
 +
     .setPermissions(Arrays.asList("public_profile", "user_birthday", "email", "user_location"));
 +
 
 +
  // Google+ configuration
 +
  GplusConfiguration gplusConfiguration = new GplusConfiguration();
 +
 
 +
  // LinkedIn configuration
 +
  LinkedinConfiguration linkedinConfiguration = new LinkedinConfiguration();
 +
    
 +
  // Twitter configuration
 +
  // Key and Secret are mandatory
 +
  TwitterConfiguration twitterConfiguration = new TwitterConfiguration()
 +
     .setTwitterKey(TWITTER_KEY)
 +
    .setTwitterSecret(TWITTER_SECRET);
 +
    
 +
  SocialId.configLoginProviders(facebookConfiguration, gplusConfiguration, linkedinConfiguration, twitterConfiguration);
  
Add the following code to the end of the onActivityResult() method:
+
After provider configuration, add the following code to finish the login configuration:
  
   SocialId.onActivityResult(this, requestCode, resultCode, data);
+
   SocialId.configLogin(this, new LoginEventListenerImpl(this));
  
Call the following code to make the user log in:
+
If you want to pass additional configuration, such as the default user profile fields to get from the Social-ID platform, you can use the following code instead. See [[Social Profile Fields]] for the available profile fields.
  
   try {
+
   import com.coffeebeantech.socialidsdk.sociallogin.SocialLoginConfiguration;
     SocialId.initLogin(Provider.FACEBOOK); // you can change FACEBOOK to LINKEDIN, TWITTER or GPLUS
+
 
  } catch (SocialIdSDKException e) {
+
  SocialLoginConfiguration socialLoginConfiguration = new SocialLoginConfiguration().
    e.printStackTrace();
+
     setUserFields(Arrays.asList("display_name", "picture_url", "current_location", "verified_email", "gender"));
  }
+
 
 +
  SocialId.configLogin(this, new LoginEventListenerImpl(this), socialLoginConfiguration);
 +
 
 +
Add the following code to the end of the Activity's ''onActivityResult()'' method:
 +
 
 +
  SocialId.onActivityResult(requestCode, resultCode, data);
 +
 
 +
Call the following code to start the login process:
 +
 
 +
  import com.coffeebeantech.socialidsdk.exceptions.SocialIdException;
 +
  import com.coffeebeantech.socialidsdk.util.Provider;
 +
 
 +
  SocialId.initLogin(Provider.FACEBOOK); // you can change FACEBOOK to LINKEDIN, TWITTER or GPLUS
  
 
Finally, create a LoginEventListenerImpl class using this example:
 
Finally, create a LoginEventListenerImpl class using this example:
  
  package com.YOUR_PACKAGE;
 
  import android.app.Activity;
 
  import android.content.Intent;
 
  import android.widget.Toast;
 
 
   import com.coffeebeantech.socialidapi.models.marketing.login.User;
 
   import com.coffeebeantech.socialidapi.models.marketing.login.User;
   import com.coffeebeantech.socialidsdk.exceptions.SocialIdSDKException;
+
   import com.coffeebeantech.socialidsdk.exceptions.SocialIdException;
 
   import com.coffeebeantech.socialidsdk.sociallogin.LoginEventListener;
 
   import com.coffeebeantech.socialidsdk.sociallogin.LoginEventListener;
 
   import com.coffeebeantech.socialidsdk.util.Provider;
 
   import com.coffeebeantech.socialidsdk.util.Provider;
 +
 
 
   public class LoginEventListenerImpl implements LoginEventListener {
 
   public class LoginEventListenerImpl implements LoginEventListener {
 +
 
 
     private Activity mActivity;
 
     private Activity mActivity;
    private ProgressDialog mProgressDialog;
+
 
 
     public LoginEventListenerImpl(Activity activity) {
 
     public LoginEventListenerImpl(Activity activity) {
 
       this.mActivity = activity;
 
       this.mActivity = activity;
 
     }
 
     }
 +
 
 
     @Override
 
     @Override
 
     public void onBack() {
 
     public void onBack() {
       Toast.makeText(mActivity, "onBack", Toast.LENGTH_SHORT).show();
+
       // onBack code
 
     }
 
     }
 +
 
 
     @Override
 
     @Override
 
     public void onCancel() {
 
     public void onCancel() {
       Toast.makeText(mActivity, "onCancel", Toast.LENGTH_SHORT).show();
+
       // onCancel code
 
     }
 
     }
 +
 
 
     @Override
 
     @Override
     public void onComplete(Provider provider, User loginUser) {
+
     public void onComplete(Provider provider, User user) {
       Toast.makeText(mActivity, "onComplete", Toast.LENGTH_SHORT).show();
+
       // onComplete code
       mActivity.startActivity(new Intent(mActivity, UserProfileActivity.class));
+
       // PersonProfile personProfile = user.getProfile();
 
     }
 
     }
 +
 
 
     @Override
 
     @Override
     public void onError(SocialIdSDKException e) {
+
     public void onError(SocialIdException e) {
       Toast.makeText(mActivity, "onError", Toast.LENGTH_SHORT).show();
+
       // onError code
 
       e.printStackTrace();
 
       e.printStackTrace();
 
     }
 
     }
 +
 
 
     @Override
 
     @Override
 
     public void onPreExecute() {
 
     public void onPreExecute() {
       Toast.makeText(mActivity, "onPreExecute", Toast.LENGTH_SHORT).show();
+
       // onPreExecute code
      mProgressDialog = new ProgressDialog(mActivity);
+
      mProgressDialog.setCancelable(false);
+
      mProgressDialog.setTitle("Please wait");
+
      mProgressDialog.setMessage("Loading ...");
+
      mProgressDialog.show();
+
 
     }
 
     }
 +
 
 
     @Override
 
     @Override
 
     public void onPostExecute() {
 
     public void onPostExecute() {
       Toast.makeText(mActivity, "onPostExecute", Toast.LENGTH_SHORT).show();
+
       // onPostExecute code
      mProgressDialog.dismiss();
+
 
     }
 
     }
 
   }
 
   }
Line 85: Line 111:
 
Use the following code to log out a user:
 
Use the following code to log out a user:
  
 +
  import com.coffeebeantech.socialidsdk.SocialId;
 +
 
 
   SocialId.logoutUser();
 
   SocialId.logoutUser();
  
= Get the user profile =
+
= Get the logged user =
  
Add the following statements to your Activity:
+
Use the following code to get the current logged used in cache:
  
 
   import com.coffeebeantech.socialidapi.models.marketing.database.PersonProfile;
 
   import com.coffeebeantech.socialidapi.models.marketing.database.PersonProfile;
 
   import com.coffeebeantech.socialidapi.models.marketing.login.User;
 
   import com.coffeebeantech.socialidapi.models.marketing.login.User;
 
   import com.coffeebeantech.socialidsdk.SocialId;
 
   import com.coffeebeantech.socialidsdk.SocialId;
 +
 
 +
  User user = SocialId.getCurrentUser();
 +
  PersonProfile personProfile = user.getProfile();
 +
  // you can now call personProfile.getDisplayName(), personProfile.getPictureUrl() and other methods to get profile data
  
Use the following code to get the user profile:
+
If you want a refreshed user from the Social Id platform, you can use the following code instead:
  
   User mUser = SocialId.getCurrentUser();
+
   import com.coffeebeantech.socialidapi.models.marketing.login.User;
   if(mUser != null) {
+
  import com.coffeebeantech.socialidsdk.SocialId;
     PersonProfile personProfile = mUser.getProfile();
+
  import com.coffeebeantech.socialidsdk.exceptions.SocialIdException;
     // you can now call personProfile.getDisplayName(), personProfile.getPictureUrl() and other methods to get profile data
+
   import com.coffeebeantech.socialidsdk.util.SocialIdCallback;
 +
 
 +
  SocialId.getCurrentUser(new SocialIdCallback<User>() {
 +
     @Override
 +
    public void onSuccess(User user) {
 +
      // PersonProfile personProfile = user.getProfile();
 +
     }
 +
 
 +
    @Override
 +
    public void onError(SocialIdException e) {
 +
      e.printStackTrace();
 +
    }
 +
  });
 +
 
 +
= User Push Notifications =
 +
 
 +
In order to send push notifications directly to a specific user, you can link his device with his account. You can make this process whenever you want after the user logs in:
 +
 
 +
  import com.coffeebeantech.socialidsdk.SocialId;
 +
  import com.coffeebeantech.socialidsdk.exceptions.SocialIdException;
 +
  import com.coffeebeantech.socialidsdk.util.SocialIdCallback;
 +
 
 +
  if(SocialId.getDeviceId() != null && !SocialId.getDeviceId().isEmpty()) {
 +
    SocialId.linkDeviceToUser(new SocialIdCallback<Void>() {
 +
      @Override
 +
      public void onSuccess(Void v) {
 +
        // onSuccess code
 +
      }
 +
 
 +
      @Override
 +
      public void onError(SocialIdException e) {
 +
        // onError code
 +
      }
 +
    });
 
   }
 
   }

Latest revision as of 21:03, 26 April 2016

Contents

Download and Setup the SDK

You can download and setup the SDK using our Android SDK Setup guide.

Social Login

Add the following statements to your Activity:

 import com.coffeebeantech.socialidsdk.SocialId;

Configure all providers you'll support. This can be performed in your Activity's onCreate() method.

 import com.coffeebeantech.socialidsdk.sociallogin.providers.FacebookConfiguration;
 import com.coffeebeantech.socialidsdk.sociallogin.providers.GplusConfiguration;
 import com.coffeebeantech.socialidsdk.sociallogin.providers.LinkedinConfiguration;
 import com.coffeebeantech.socialidsdk.sociallogin.providers.TwitterConfiguration;
 
 // Facebook configuration
 // Extra permissions are optional
 FacebookConfiguration facebookConfiguration = new FacebookConfiguration()
   .setPermissions(Arrays.asList("public_profile", "user_birthday", "email", "user_location"));
 
 // Google+ configuration
 GplusConfiguration gplusConfiguration = new GplusConfiguration();
 
 // LinkedIn configuration
 LinkedinConfiguration linkedinConfiguration = new LinkedinConfiguration();
 
 // Twitter configuration
 // Key and Secret are mandatory
 TwitterConfiguration twitterConfiguration = new TwitterConfiguration()
   .setTwitterKey(TWITTER_KEY)
   .setTwitterSecret(TWITTER_SECRET);
 
 SocialId.configLoginProviders(facebookConfiguration, gplusConfiguration, linkedinConfiguration, twitterConfiguration);

After provider configuration, add the following code to finish the login configuration:

 SocialId.configLogin(this, new LoginEventListenerImpl(this));

If you want to pass additional configuration, such as the default user profile fields to get from the Social-ID platform, you can use the following code instead. See Social Profile Fields for the available profile fields.

 import com.coffeebeantech.socialidsdk.sociallogin.SocialLoginConfiguration;
 
 SocialLoginConfiguration socialLoginConfiguration = new SocialLoginConfiguration().
   setUserFields(Arrays.asList("display_name", "picture_url", "current_location", "verified_email", "gender"));
 
 SocialId.configLogin(this, new LoginEventListenerImpl(this), socialLoginConfiguration);

Add the following code to the end of the Activity's onActivityResult() method:

 SocialId.onActivityResult(requestCode, resultCode, data);

Call the following code to start the login process:

 import com.coffeebeantech.socialidsdk.exceptions.SocialIdException;
 import com.coffeebeantech.socialidsdk.util.Provider;
 
 SocialId.initLogin(Provider.FACEBOOK); // you can change FACEBOOK to LINKEDIN, TWITTER or GPLUS

Finally, create a LoginEventListenerImpl class using this example:

 import com.coffeebeantech.socialidapi.models.marketing.login.User;
 import com.coffeebeantech.socialidsdk.exceptions.SocialIdException;
 import com.coffeebeantech.socialidsdk.sociallogin.LoginEventListener;
 import com.coffeebeantech.socialidsdk.util.Provider;
 
 public class LoginEventListenerImpl implements LoginEventListener {
 
   private Activity mActivity;
 
   public LoginEventListenerImpl(Activity activity) {
     this.mActivity = activity;
   }
 
   @Override
   public void onBack() {
     // onBack code
   }
 
   @Override
   public void onCancel() {
     // onCancel code
   }
 
   @Override
   public void onComplete(Provider provider, User user) {
     // onComplete code
     // PersonProfile personProfile = user.getProfile();
   }
 
   @Override
   public void onError(SocialIdException e) {
     // onError code
     e.printStackTrace();
   }
 
   @Override
   public void onPreExecute() {
     // onPreExecute code
   }
 
   @Override
   public void onPostExecute() {
     // onPostExecute code
   }
 }

Logout

Use the following code to log out a user:

 import com.coffeebeantech.socialidsdk.SocialId;
 
 SocialId.logoutUser();

Get the logged user

Use the following code to get the current logged used in cache:

 import com.coffeebeantech.socialidapi.models.marketing.database.PersonProfile;
 import com.coffeebeantech.socialidapi.models.marketing.login.User;
 import com.coffeebeantech.socialidsdk.SocialId;
 
 User user = SocialId.getCurrentUser();
 PersonProfile personProfile = user.getProfile();
 // you can now call personProfile.getDisplayName(), personProfile.getPictureUrl() and other methods to get profile data

If you want a refreshed user from the Social Id platform, you can use the following code instead:

 import com.coffeebeantech.socialidapi.models.marketing.login.User;
 import com.coffeebeantech.socialidsdk.SocialId;
 import com.coffeebeantech.socialidsdk.exceptions.SocialIdException;
 import com.coffeebeantech.socialidsdk.util.SocialIdCallback;
 
 SocialId.getCurrentUser(new SocialIdCallback<User>() {
   @Override
   public void onSuccess(User user) {
     // PersonProfile personProfile = user.getProfile();
   }
 
   @Override
   public void onError(SocialIdException e) {
     e.printStackTrace();
   }
 });

User Push Notifications

In order to send push notifications directly to a specific user, you can link his device with his account. You can make this process whenever you want after the user logs in:

 import com.coffeebeantech.socialidsdk.SocialId;
 import com.coffeebeantech.socialidsdk.exceptions.SocialIdException;
 import com.coffeebeantech.socialidsdk.util.SocialIdCallback;
 
 if(SocialId.getDeviceId() != null && !SocialId.getDeviceId().isEmpty()) {
   SocialId.linkDeviceToUser(new SocialIdCallback<Void>() {
     @Override
     public void onSuccess(Void v) {
       // onSuccess code
     }
 
     @Override
     public void onError(SocialIdException e) {
       // onError code
     }
   });
 }
Personal tools
Namespaces
Variants
Actions
Navigation
Toolbox