Android SDK
Line 11: | Line 11: | ||
Configure all providers you'll support. This can be performed in your Activity's ''onCreate()'' method. | Configure all providers you'll support. This can be performed in your Activity's ''onCreate()'' method. | ||
+ | import com.coffeebeantech.socialidsdk.sociallogin.providers.EmailConfiguration; | ||
import com.coffeebeantech.socialidsdk.sociallogin.providers.FacebookConfiguration; | import com.coffeebeantech.socialidsdk.sociallogin.providers.FacebookConfiguration; | ||
import com.coffeebeantech.socialidsdk.sociallogin.providers.GplusConfiguration; | import com.coffeebeantech.socialidsdk.sociallogin.providers.GplusConfiguration; | ||
Line 33: | Line 34: | ||
.setTwitterSecret(TWITTER_SECRET); | .setTwitterSecret(TWITTER_SECRET); | ||
− | SocialId.configLoginProviders(facebookConfiguration, gplusConfiguration, linkedinConfiguration, twitterConfiguration); | + | // Email configuration |
+ | EmailConfiguration emailConfiguration = new EmailConfiguration(); | ||
+ | |||
+ | SocialId.configLoginProviders(facebookConfiguration, gplusConfiguration, linkedinConfiguration, twitterConfiguration, emailConfiguration); | ||
After provider configuration, add the following code to finish the login configuration: | After provider configuration, add the following code to finish the login configuration: | ||
Line 51: | Line 55: | ||
SocialId.onActivityResult(requestCode, resultCode, data); | SocialId.onActivityResult(requestCode, resultCode, data); | ||
+ | |||
+ | Add the following code to the end of the Activity's ''onRequestPermissionsResult()'' method: | ||
+ | |||
+ | SocialId.onRequestPermissionsResult(requestCode, permissions, grantResults); | ||
Call the following code to start the login process: | Call the following code to start the login process: | ||
Line 57: | Line 65: | ||
import com.coffeebeantech.socialidsdk.util.Provider; | import com.coffeebeantech.socialidsdk.util.Provider; | ||
− | SocialId.initLogin(Provider.FACEBOOK); // you can change FACEBOOK to LINKEDIN, TWITTER | + | SocialId.initLogin(Provider.FACEBOOK); // you can change FACEBOOK to LINKEDIN, TWITTER, GPLUS or EMAIL |
+ | |||
+ | For Email login, you should pass the required parameters through the EmailLoginParameters parameter: | ||
+ | |||
+ | import com.coffeebeantech.socialidsdk.sociallogin.providers.EmailLoginParameters; | ||
+ | |||
+ | EmailLoginParameters emailLoginParameters = new EmailLoginParameters(); | ||
+ | emailLoginParameters.setPassword(password); | ||
+ | emailLoginParameters.setEmailAddress(email); | ||
+ | |||
+ | SocialId.initLogin(Provider.EMAIL, emailLoginParameters); | ||
Finally, create a LoginEventListenerImpl class using this example: | Finally, create a LoginEventListenerImpl class using this example: | ||
Line 165: | Line 183: | ||
// onError code | // onError code | ||
} | } | ||
+ | }); | ||
+ | } | ||
+ | |||
+ | = Create user with email and password = | ||
+ | |||
+ | You can register a user by following the example below: | ||
+ | |||
+ | import com.coffeebeantech.socialidapi.models.marketing.login.User; | ||
+ | import com.coffeebeantech.socialidapi.models.marketing.login.UserAttributes; | ||
+ | import com.coffeebeantech.socialidapi.models.marketing.login.UserDataAttributes; | ||
+ | import com.coffeebeantech.socialidsdk.SocialId; | ||
+ | import com.coffeebeantech.socialidsdk.exceptions.SocialIdException; | ||
+ | import com.coffeebeantech.socialidsdk.util.SocialIdCallback; | ||
+ | |||
+ | // user attributes - required | ||
+ | UserAttributes userAttributes = new UserAttributes(); | ||
+ | // user data attributes - optional | ||
+ | UserDataAttributes userDataAttributes = new UserDataAttributes(); | ||
+ | Map<String, Object> userDataFields = new HashMap<String, Object>(); | ||
+ | |||
+ | userAttributes.setEmailAddress(emailAddress); // or setUsername(username) | ||
+ | userAttributes.setPassword(password); | ||
+ | userDataFields.put("name", name); | ||
+ | userDataFields.put("birthday", birthday); | ||
+ | userDataAttributes.setFields(userDataFields); | ||
+ | |||
+ | SocialId.createUser(userAttributes, userDataAttributes, new SocialIdCallback<User>() { | ||
+ | @Override | ||
+ | public void onSuccess(User user) { | ||
+ | // user was created and is already logged in | ||
+ | // PersonProfile personProfile = user.getProfile(); | ||
+ | } | ||
+ | |||
+ | @Override | ||
+ | public void onError(SocialIdException e) { | ||
+ | // onError code | ||
+ | }); | ||
+ | } | ||
+ | |||
+ | You can also provide a reset password flow for users with the following code: | ||
+ | |||
+ | import com.coffeebeantech.socialidapi.models.marketing.login.ResetPasswordEmailAttributes; | ||
+ | import com.coffeebeantech.socialidapi.util.Language; | ||
+ | import com.coffeebeantech.socialidsdk.SocialId; | ||
+ | import com.coffeebeantech.socialidsdk.exceptions.SocialIdException; | ||
+ | import com.coffeebeantech.socialidsdk.util.SocialIdCallback; | ||
+ | |||
+ | ResetPasswordEmailAttributes resetPasswordEmailAttributes = new ResetPasswordEmailAttributes(); | ||
+ | |||
+ | resetPasswordEmailAttributes | ||
+ | .setEmailAddress(emailAddress) // or setUsername(username) | ||
+ | .setRedirectUrl(redirectUrl) // required | ||
+ | .setSubject(subject) // optional | ||
+ | .setFrom(from) // optional | ||
+ | .setDescription(description) // optional | ||
+ | .setLogoUrl(logoUrl) // optional | ||
+ | .setLanguage(Language.ENGLISH); // optional | ||
+ | |||
+ | SocialId.resetUserPassword(resetPasswordEmailAttributes, new SocialIdCallback<Void>() { | ||
+ | @Override | ||
+ | public void onSuccess(Void v) { | ||
+ | // onSuccess code | ||
+ | } | ||
+ | |||
+ | @Override | ||
+ | public void onError(SocialIdException e) { | ||
+ | // onError code | ||
}); | }); | ||
} | } |
Revision as of 22:35, 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.EmailConfiguration; 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); // Email configuration EmailConfiguration emailConfiguration = new EmailConfiguration(); SocialId.configLoginProviders(facebookConfiguration, gplusConfiguration, linkedinConfiguration, twitterConfiguration, emailConfiguration);
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);
Add the following code to the end of the Activity's onRequestPermissionsResult() method:
SocialId.onRequestPermissionsResult(requestCode, permissions, grantResults);
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, GPLUS or EMAIL
For Email login, you should pass the required parameters through the EmailLoginParameters parameter:
import com.coffeebeantech.socialidsdk.sociallogin.providers.EmailLoginParameters; EmailLoginParameters emailLoginParameters = new EmailLoginParameters(); emailLoginParameters.setPassword(password); emailLoginParameters.setEmailAddress(email); SocialId.initLogin(Provider.EMAIL, emailLoginParameters);
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 } }); }
Create user with email and password
You can register a user by following the example below:
import com.coffeebeantech.socialidapi.models.marketing.login.User; import com.coffeebeantech.socialidapi.models.marketing.login.UserAttributes; import com.coffeebeantech.socialidapi.models.marketing.login.UserDataAttributes; import com.coffeebeantech.socialidsdk.SocialId; import com.coffeebeantech.socialidsdk.exceptions.SocialIdException; import com.coffeebeantech.socialidsdk.util.SocialIdCallback; // user attributes - required UserAttributes userAttributes = new UserAttributes(); // user data attributes - optional UserDataAttributes userDataAttributes = new UserDataAttributes(); Map<String, Object> userDataFields = new HashMap<String, Object>(); userAttributes.setEmailAddress(emailAddress); // or setUsername(username) userAttributes.setPassword(password); userDataFields.put("name", name); userDataFields.put("birthday", birthday); userDataAttributes.setFields(userDataFields); SocialId.createUser(userAttributes, userDataAttributes, new SocialIdCallback<User>() { @Override public void onSuccess(User user) { // user was created and is already logged in // PersonProfile personProfile = user.getProfile(); } @Override public void onError(SocialIdException e) { // onError code }); }
You can also provide a reset password flow for users with the following code:
import com.coffeebeantech.socialidapi.models.marketing.login.ResetPasswordEmailAttributes; import com.coffeebeantech.socialidapi.util.Language; import com.coffeebeantech.socialidsdk.SocialId; import com.coffeebeantech.socialidsdk.exceptions.SocialIdException; import com.coffeebeantech.socialidsdk.util.SocialIdCallback; ResetPasswordEmailAttributes resetPasswordEmailAttributes = new ResetPasswordEmailAttributes(); resetPasswordEmailAttributes .setEmailAddress(emailAddress) // or setUsername(username) .setRedirectUrl(redirectUrl) // required .setSubject(subject) // optional .setFrom(from) // optional .setDescription(description) // optional .setLogoUrl(logoUrl) // optional .setLanguage(Language.ENGLISH); // optional SocialId.resetUserPassword(resetPasswordEmailAttributes, new SocialIdCallback<Void>() { @Override public void onSuccess(Void v) { // onSuccess code } @Override public void onError(SocialIdException e) { // onError code }); }