Android SDK 2.3.0

From Social ID Developers
(Difference between revisions)
Jump to: navigation, search
 
 
(10 intermediate revisions by 3 users not shown)
Line 1: Line 1:
#REDIRECT [[Android SDK Setup]]
+
= 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
 +
      }
 +
    });
 +
  }

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