* @return status of tweet
* @throws EnMeExpcetion exception
*/
public TweetPublishedMetadata publicTweetPoll(final String tweetText, final SocialAccount socialAccount, final Set<HashTag> hashtags)
throws EnMeExpcetion {
TweetPublishedMetadata published = new TweetPublishedMetadata();
log.debug("publicTweetPoll:{ "+tweetText);
if (socialAccount.getAccounType().equals(SocialProvider.TWITTER)) {
log.debug("Publish on TWITTER");
final TwitterAPIOperations twitterAPIOperations = new TwitterAPITemplate(
EnMePlaceHolderConfigurer.getProperty("twitter.oauth.consumerSecret"),
EnMePlaceHolderConfigurer.getProperty("twitter.oauth.consumerKey"),
socialAccount);
try {
published = twitterAPIOperations.updateStatus(tweetText);
} catch (Exception e) {
log.error(e);
e.printStackTrace();
}
} else if (socialAccount.getAccounType().equals(SocialProvider.IDENTICA)) {
log.debug("Publish on IDENTICA");
final IdenticaAPIOperations identicaAPIOperations = new IdenticaAPITemplate(
EnMePlaceHolderConfigurer.getProperty("identica.consumer.key"),
EnMePlaceHolderConfigurer.getProperty("identica.consumer.secret"),
socialAccount.getAccessToken(),
socialAccount.getSecretToken());
try {
log.debug("Publish on Identica............>");
published = identicaAPIOperations.updateStatus(tweetText);
log.debug("Publish on Identica...... "+published);
} catch (Exception e) {
published.setDatePublished(Calendar.getInstance().getTime());
log.error(e);
e.printStackTrace();
}
} else if (socialAccount.getAccounType().equals(SocialProvider.PLURK)) {
log.debug("Publish on PLURK");
final PlurkAPIOperations tumblrAPIOperations = new PlurkAPITemplate(
EnMePlaceHolderConfigurer.getProperty("plurk.consumer.key"),
EnMePlaceHolderConfigurer.getProperty("plurk.consumer.secret"),
socialAccount.getAccessToken(),
socialAccount.getSecretToken());
try {
log.debug("Publish on Identica............>");
published = tumblrAPIOperations.updateStatus(tweetText);
log.debug("Publish on Identica...... "+published);
} catch (Exception e) {
published.setDatePublished(Calendar.getInstance().getTime());
log.error(e);
e.printStackTrace();
}
} else if (socialAccount.getAccounType().equals(SocialProvider.TUMBLR)) {
log.debug("Publish on TUMBLR");
final TumblrAPIOperations tumblrAPIOperations = new TumblrAPITemplate(
EnMePlaceHolderConfigurer.getProperty("tumblr.consumer.key"),
EnMePlaceHolderConfigurer.getProperty("tumblr.consumer.secret"),
socialAccount.getAccessToken(),
socialAccount.getSecretToken());
try {
log.debug("Publish on TUMBLR............>");
published = tumblrAPIOperations.updateStatus(tweetText, socialAccount, hashtags);
log.debug("Publish on TUMBLR...... "+published);
} catch (Exception e) {
published.setDatePublished(Calendar.getInstance().getTime());
log.error(e);
e.printStackTrace();
}
} else if (socialAccount.getAccounType().equals(SocialProvider.FACEBOOK)) {
log.debug("Publish on FACEBOOK");
FacebookAPIOperations facebookAPIOperations = new FacebookAPITemplate(socialAccount.getAccessToken());
try {
log.debug("Publish on FACEBOOK............>");
published = facebookAPIOperations.updateStatus(tweetText);
log.debug("Publish on FACEBOOK...... "+published);
published.setDatePublished(Calendar.getInstance().getTime());
} catch (HttpClientErrorException e) {
log.error("-----------------------FACEBOOK EXPIRED TOKEN----------------------- 1");
log.error(e.getStatusCode());
log.error(e.getResponseBodyAsString());
log.error(e.getStatusText());
published.setDatePublished(Calendar.getInstance().getTime());
// refresh token point.
//offline_access scope permission is enabled by default . In this case
//https://developers.facebook.com/docs/authentication/permissions/
log.error("-----------------------FACEBOOK EXPIRED TOKEN----------------------- 2");
e.printStackTrace();
} catch (Exception e) {
published.setDatePublished(Calendar.getInstance().getTime());
log.error(e);
e.printStackTrace();
}
} else if (socialAccount.getAccounType().equals(SocialProvider.LINKEDIN)) {
log.debug("Publish on LinkedIn");
LinkedInAPIOperations linkedInAPIOperations = new LinkedInAPITemplate(
EnMePlaceHolderConfigurer.getProperty("linkedIn.oauth.api.key"),
EnMePlaceHolderConfigurer.getProperty("linkedIn.oauth.api.secret"),
socialAccount.getAccessToken(),
socialAccount.getSecretToken());
try {
log.debug("Publish on LinkedIn 1............>");
published = linkedInAPIOperations.updateStatus(tweetText);
published.setTextTweeted(tweetText);
published.setDatePublished(Calendar.getInstance().getTime());
published.setTweetId(RandomStringUtils.randomAscii(15));
log.debug("Publish on LinkedIn 2...... "+published);
} catch (Exception e) {
published.setDatePublished(Calendar.getInstance().getTime());
log.error(e);
e.printStackTrace();
}
} else if (socialAccount.getAccounType().equals(SocialProvider.GOOGLE_BUZZ)) {
BuzzAPIOperations buzzInAPIOperations = new GoogleBuzzAPITemplate(socialAccount);
try {
log.debug("Publish on LinkedIn............>");
published = buzzInAPIOperations.updateStatus(tweetText);
published.setTextTweeted(tweetText);
published.setDatePublished(Calendar.getInstance().getTime());
published.setTweetId(RandomStringUtils.randomAscii(15));
log.debug("Publish on LinkedIn...... "+published);
} catch (Exception e) {
published.setDatePublished(Calendar.getInstance().getTime());
log.error(e);
e.printStackTrace();
}
}
if (published != null) {
log.debug("publicTweetPoll:s "+published.toString());
}
return published;
}