mSocialNetworkManager = (SocialNetworkManager) getFragmentManager().findFragmentByTag(SOCIAL_NETWORK_TAG); if (mSocialNetworkManager == null) { mSocialNetworkManager = SocialNetworkManager.Builder.from(getActivity()) .twitter(<api_token>, <api_secret>) .linkedIn(<api_token>, <api_secret>, "r_basicprofile+rw_nus+r_network+w_messages") .facebook() .googlePlus() .build(); getFragmentManager().beginTransaction().add(mSocialNetworkManager, SOCIAL_NETWORK_TAG).commit(); }
mSocialNetworkManager.setOnInitializationCompleteListener(this);
@Override public void onSocialNetworkManagerInitialized() { super.onSocialNetworkManagerInitialized(); for (SocialNetwork socialNetwork : mSocialNetworkManager.getInitializedSocialNetworks()) { socialNetwork.setOnLoginCompleteListener(this); } }
mSocialNetworkManager.getLinkedInSocialNetwork().requestLogin();
@Override public void onLoginSuccess(int socialNetworkID) { } @Override public void onError(int socialNetworkID, String requestID, String errorMessage, Object data) { }
mSocialNetworkManager.getGooglePlusSocialNetwork().requestLogin(new DemoOnLoginCompleteListener()); private class DemoOnLoginCompleteListener implements OnLoginCompleteListener { @Override public void onLoginSuccess(int socialNetworkID) { } @Override public void onError(int socialNetworkID, String requestID, String errorMessage, Object data) { } }
public SocialNetworkManager build() { Bundle args = new Bundle(); if (!TextUtils.isEmpty(twitterConsumerKey) && !TextUtils.isEmpty(twitterConsumerSecret)) { args.putString(PARAM_TWITTER_KEY, twitterConsumerKey); args.putString(PARAM_TWITTER_SECRET, twitterConsumerSecret); } if (!TextUtils.isEmpty(linkedInConsumerKey) && !TextUtils.isEmpty(linkedInConsumerSecret) && !TextUtils.isEmpty(linkedInPermissions)) { args.putString(PARAM_LINKEDIN_KEY, linkedInConsumerKey); args.putString(PARAM_LINKEDIN_SECRET, linkedInConsumerSecret); args.putString(PARAM_LINKEDIN_PERMISSIONS, linkedInPermissions); } if (facebook) { args.putBoolean(PARAM_FACEBOOK, true); } if (googlePlus) { args.putBoolean(PARAM_GOOGLE_PLUS, true); } SocialNetworkManager socialNetworkManager = new SocialNetworkManager(); socialNetworkManager.setArguments(args); return socialNetworkManager; }
private Map<Integer, SocialNetwork> mSocialNetworksMap = new HashMap<Integer, SocialNetwork>();
public void onStop() { … for (SocialNetwork socialNetwork : mSocialNetworksMap.values()) { socialNetwork.onStop(); } }
public class GooglePlusSocialNetwork extends SocialNetwork … public static final int ID = 3;
protected Map<String, SocialNetworkListener> mGlobalListeners = new HashMap<String, SocialNetworkListener>(); protected Map<String, SocialNetworkListener> mLocalListeners = new HashMap<String, SocialNetworkListener>();
public void requestSocialPerson(String userID) { requestSocialPerson(userID, null); }
public void requestSocialPerson(String userID, OnRequestSocialPersonCompleteListener onRequestSocialPersonCompleteListener) { registerListener(REQUEST_GET_PERSON, onRequestSocialPersonCompleteListener); }
private void registerListener(String listenerID, SocialNetworkListener socialNetworkListener) { if (socialNetworkListener != null) { mLocalListeners.put(listenerID, socialNetworkListener); } else { mLocalListeners.put(listenerID, mGlobalListeners.get(listenerID)); } }
Request request = Request.newMeRequest(currentSession, new Request.GraphUserCallback() { @Override public void onCompleted(GraphUser me, Response response) { … request.executeAsync();
@Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); /** * This is required only if you are using Google Plus, the issue is that there SDK * require Activity to launch Auth, so library can't receive onActivityResult in fragment */ Fragment fragment = getSupportFragmentManager().findFragmentByTag(BaseDemoFragment.SOCIAL_NETWORK_TAG); if (fragment != null) { fragment.onActivityResult(requestCode, resultCode, data); } }
Source: https://habr.com/ru/post/223837/
All Articles