Android SDK 2.2.0
(moved Android SDK 2.2.0 to Android SDK 2.1.0) |
(→Download and Setup the SDK) |
||
(2 intermediate revisions by one user not shown) | |||
Line 1: | Line 1: | ||
− | + | = Download and Setup the SDK = | |
+ | |||
+ | You can download and setup the SDK using our [[Android SDK Setup 2.2.0 | 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:25, 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 } }); }