I need to develop an app that has the share function. I have to share on Facebook, twitter, email and maybe other services.
How can I do this? There a library on th
Share on Facebook
private ShareDialog shareDialog;
shareDialog = new ShareDialog((AppCompatActivity) context);
shareDialog.registerCallback(callbackManager, new FacebookCallback() {
@Override
public void onSuccess(Sharer.Result result) {
Log.e("TAG","Facebook Share Success");
logoutFacebook();
}
@Override
public void onCancel() {
Log.e("TAG","Facebook Sharing Cancelled by User");
}
@Override
public void onError(FacebookException error) {
Log.e("TAG","Facebook Share Success: Error: " + error.getLocalizedMessage());
}
});
if (ShareDialog.canShow(ShareLinkContent.class)) {
ShareLinkContent linkContent = new ShareLinkContent.Builder()
.setQuote("Content goes here")
.setContentUrl(Uri.parse("URL goes here"))
.build();
shareDialog.show(linkContent);
}
AndroidManifest.xml
dependencies {
implementation 'com.facebook.android:facebook-share:[5,6)' //Facebook Share
}
Share on Twitter
public void shareProductOnTwitter() {
TwitterConfig config = new TwitterConfig.Builder(this)
.logger(new DefaultLogger(Log.DEBUG))
.twitterAuthConfig(new TwitterAuthConfig(getResources().getString(R.string.twitter_api_key), getResources().getString(R.string.twitter_api_secret)))
.debug(true)
.build();
Twitter.initialize(config);
twitterAuthClient = new TwitterAuthClient();
TwitterSession twitterSession = TwitterCore.getInstance().getSessionManager().getActiveSession();
if (twitterSession == null) {
twitterAuthClient.authorize(this, new Callback() {
@Override
public void success(Result result) {
TwitterSession twitterSession = result.data;
shareOnTwitter();
}
@Override
public void failure(TwitterException e) {
Log.e("TAG","Twitter Error while authorize user " + e.getMessage());
}
});
} else {
shareOnTwitter();
}
}
private void shareOnTwitter() {
StatusesService statusesService = TwitterCore.getInstance().getApiClient().getStatusesService();
Call tweetCall = statusesService.update("Content goes here", null, false, null, null, null, false, false, null);
tweetCall.enqueue(new Callback() {
@Override
public void success(Result result) {
Log.e("TAG","Twitter Share Success");
logoutTwitter();
}
@Override
public void failure(TwitterException exception) {
Log.e("TAG","Twitter Share Failed with Error: " + exception.getLocalizedMessage());
}
});
}