package pt.codebits.park.alert.twitter; import android.app.Activity; import android.content.SharedPreferences; import android.util.Log; import android.widget.Toast; import oauth.signpost.OAuth; import pt.codebits.park.alert.MainMapActivity; import pt.codebits.park.alert.comm.REST; import twitter4j.Twitter; import twitter4j.TwitterException; import twitter4j.TwitterFactory; import twitter4j.User; import twitter4j.auth.AccessToken; public abstract class TwitterUtils { public static final String CONSUMER_KEY = "bHAAmfpA8mFf0K26b9mxw"; public static final String CONSUMER_SECRET= "S48mM0SSqvB93ol29BLPIwrGFOYT5cS9H2GFwP63nq0"; public static final String REQUEST_URL = "http://api.twitter.com/oauth/request_token"; public static final String ACCESS_URL = "http://api.twitter.com/oauth/access_token"; public static final String AUTHORIZE_URL = "http://api.twitter.com/oauth/authorize"; public static final String OAUTH_CALLBACK_SCHEME = "parkalert-oauth-twitter"; public static final String OAUTH_CALLBACK_HOST = "callback"; public static final String OAUTH_CALLBACK_URL = OAUTH_CALLBACK_SCHEME + "://" + OAUTH_CALLBACK_HOST; public static final String PREFS_OAUTH_TOKEN = "twitter_" + OAuth.OAUTH_TOKEN; public static final String PREFS_OAUTH_TOKEN_SECRET = "twitter_" + OAuth.OAUTH_TOKEN_SECRET; public static boolean isAuthenticated(SharedPreferences prefs) { String token = prefs.getString(OAuth.OAUTH_TOKEN, ""); String secret = prefs.getString(OAuth.OAUTH_TOKEN_SECRET, ""); if(token.length() == 0 || secret.length() == 0){ return false; } AccessToken accessToken = new AccessToken(token,secret); Twitter twitter = new TwitterFactory().getInstance(); twitter.setOAuthConsumer(TwitterUtils.CONSUMER_KEY, TwitterUtils.CONSUMER_SECRET); twitter.setOAuthAccessToken(accessToken); try { twitter.getAccountSettings(); return true; } catch (TwitterException e) { return false; } } public static void loginWithTwitter(Activity activity, SharedPreferences prefs){ String token = prefs.getString(OAuth.OAUTH_TOKEN, ""); String secret = prefs.getString(OAuth.OAUTH_TOKEN_SECRET, ""); AccessToken accessToken = new AccessToken(token,secret); Twitter twitter = new TwitterFactory().getInstance(); twitter.setOAuthConsumer(CONSUMER_KEY, CONSUMER_SECRET); twitter.setOAuthAccessToken(accessToken); twitter.getAuthorization(); String screenName = null; String name = null; try { User user = twitter.showUser(accessToken.getUserId()); screenName = user.getScreenName(); name = user.getName(); String result = REST.loginTwitter(activity.getApplicationContext(), screenName, name); if (REST.checkForStopConditions(activity.getApplicationContext(), result)) { return; } SharedPreferences.Editor editor = prefs.edit(); editor.putString("regular_access_token", result); editor.commit(); MainMapActivity.redirectToLogin(activity); } catch (TwitterException e) { Log.e("[TwitterConnect]", "Error connecting: ", e); Toast.makeText(activity.getApplicationContext(), "Não foi possível ligá-lo via Twitter", Toast.LENGTH_LONG).show(); } catch (Exception ex){ Log.e("[TwitterConnect]", "Error connecting: ", ex); Toast.makeText(activity.getApplicationContext(), "Não foi possível ligá-lo via Twitter", Toast.LENGTH_LONG).show(); } } }