protected void onPostExecute(AccessToken accessToken) { try { // Shared Preferences SharedPreferences.Editor e = sharedPrefs.edit(); Log.v("logging_in", "this is what the token should be: " + accessToken.getToken()); if (sharedPrefs.getInt("current_account", 1) == 1) { e.putString("authentication_token_1", accessToken.getToken()); e.putString("authentication_token_secret_1", accessToken.getTokenSecret()); e.putBoolean("is_logged_in_1", true); } else { e.putString("authentication_token_2", accessToken.getToken()); e.putString("authentication_token_secret_2", accessToken.getTokenSecret()); e.putBoolean("is_logged_in_2", true); } e.commit(); // save changes // Hide login_activity button btnLoginTwitter.setText(getResources().getString(R.string.initial_sync)); btnLoginTwitter.setEnabled(true); title.setText(getResources().getString(R.string.second_welcome)); summary.setText(getResources().getString(R.string.second_info)); hideHideWebView(); } catch (Exception e) { restartLogin(); } }
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { Twitter twitter = (Twitter) request.getSession().getAttribute("twitter"); RequestToken requestToken = (RequestToken) request.getSession().getAttribute("requestToken"); String verifier = request.getParameter("oauth_verifier"); try { AccessToken oAuthAccessToken = twitter.getOAuthAccessToken(requestToken, verifier); request.getSession().removeAttribute("requestToken"); String cookie = UUID.randomUUID().toString(); Cookie c = new Cookie(SigninServlet.COOKIE_NAME, cookie); c.setMaxAge(365 * 24 * 60 * 60); // one year response.addCookie(c); UserTransaction ut = (UserTransaction) new InitialContext().lookup("java:jboss/UserTransaction"); ut.begin(); User user = entityManager.find(User.class, twitter.getScreenName()); if (user == null) { user = new User(); user.setScreenName(twitter.getScreenName()); // user.setAccessToken(oAuthAccessToken.getToken()); // user.setAccessTokenSecret(oAuthAccessToken.getTokenSecret()); entityManager.persist(user); twitterCredentialManager.setAccessToken( user, oAuthAccessToken.getToken(), oAuthAccessToken.getTokenSecret()); } else { user.getFeeds().size(); user.getCircles().size(); user.getTweeters().size(); user.getSentStories().size(); if (twitterCredentialManager.getAccessToken(user) == null) { twitterCredentialManager.setAccessToken( user, oAuthAccessToken.getToken(), oAuthAccessToken.getTokenSecret()); } } Login login = new Login(); login.setCookie(cookie); login.setUser(user); entityManager.persist(login); request.getSession().setAttribute("user", user); ut.commit(); } catch (Exception e) { throw new ServletException(e); } response.sendRedirect(request.getContextPath() + "/"); }
public void storeAccessToken(AccessToken accessToken, String username, String loginname) { editor.putString(TWEET_AUTH_KEY, accessToken.getToken()); editor.putString(TWEET_AUTH_SECRET_KEY, accessToken.getTokenSecret()); editor.putString(TWEET_USER_NAME, username); editor.putString(TWEET_LOGIN_NAME, loginname); editor.commit(); }
private static void storeAccessToken(User user, AccessToken accessToken) { DBConnection dbc = new DBConnection(); dbc.connect(); java.sql.Statement s = null; try { s = dbc.connection.createStatement(); String query = "insert into tokens values (" + user.getId() + ",'" + user.getScreenName() + "','" + accessToken.getToken() + "','" + accessToken.getTokenSecret() + "');"; // System.out.println("Query:" + query); s.execute(query); } catch (SQLException e) { System.err.println("Failed to insert token:" + e.getMessage()); // e.printStackTrace(); } finally { try { s.close(); } catch (SQLException e) { System.err.println("Couldn't close insert statement:" + e.getMessage()); e.printStackTrace(); } dbc.disconnect(); } }
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_fun_app_with_twitter); mSharedPreferences = getSharedPreferences(Const.PREFERENCE_NAME, MODE_PRIVATE); getTweetButton = (Button) findViewById(R.id.getTweet); getTweetButton.setOnClickListener(this); buttonLogin = (Button) findViewById(R.id.twitterLogin); buttonLogin.setOnClickListener(this); keyword = (EditText) findViewById(R.id.keyword); if (!isConnected()) { buttonLogin.setText(R.string.label_connect); } else { buttonLogin.setText(R.string.label_disconnect); } /** Handle OAuth Callback */ Uri uri = getIntent().getData(); if (uri != null && uri.toString().startsWith(Const.CALLBACK_URL)) { String verifier = uri.getQueryParameter(Const.IEXTRA_OAUTH_VERIFIER); try { AccessToken accessToken = twitter.getOAuthAccessToken(requestToken, verifier); Editor e = mSharedPreferences.edit(); e.putString(Const.PREF_KEY_TOKEN, accessToken.getToken()); e.putString(Const.PREF_KEY_SECRET, accessToken.getTokenSecret()); e.commit(); } catch (Exception e) { // System.out.println(e.toString()); Log.e(TAG, e.getMessage()); Toast.makeText(this, e.getMessage(), Toast.LENGTH_LONG).show(); } } }
/** * Usage: java twitter4j.examples.tweets.UpdateStatus [text] * * @param args message */ public static void main(String[] args) { if (args.length < 1) { System.out.println("Usage: java twitter4j.examples.tweets.UpdateStatus [text]"); System.exit(-1); } try { Twitter twitter = new TwitterFactory().getInstance(); try { // get request token. // this will throw IllegalStateException if access token is already available RequestToken requestToken = twitter.getOAuthRequestToken(); System.out.println("Got request token."); System.out.println("Request token: " + requestToken.getToken()); System.out.println("Request token secret: " + requestToken.getTokenSecret()); AccessToken accessToken = null; BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); while (null == accessToken) { System.out.println("Open the following URL and grant access to your account:"); System.out.println(requestToken.getAuthorizationURL()); System.out.print( "Enter the PIN(if available) and hit enter after you granted access.[PIN]:"); String pin = br.readLine(); try { if (pin.length() > 0) { accessToken = twitter.getOAuthAccessToken(requestToken, pin); } else { accessToken = twitter.getOAuthAccessToken(requestToken); } } catch (TwitterException te) { if (401 == te.getStatusCode()) { System.out.println("Unable to get the access token."); } else { te.printStackTrace(); } } } System.out.println("Got access token."); System.out.println("Access token: " + accessToken.getToken()); System.out.println("Access token secret: " + accessToken.getTokenSecret()); } catch (IllegalStateException ie) { // access token is already available, or consumer key/secret is not set. if (!twitter.getAuthorization().isEnabled()) { System.out.println("OAuth consumer key/secret is not set."); System.exit(-1); } } Status status = twitter.updateStatus(args[0]); System.out.println("Successfully updated the status to [" + status.getText() + "]."); System.exit(0); } catch (TwitterException te) { te.printStackTrace(); System.out.println("Failed to get timeline: " + te.getMessage()); System.exit(-1); } catch (IOException ioe) { ioe.printStackTrace(); System.out.println("Failed to read the system input."); System.exit(-1); } }
@Override public String input() throws Exception { if (!isEmpty(denied)) { // todo: inform user that authorization has been denied return SUCCESS; } TwitterFactory tf = new TwitterFactory(TwitterConfigFactory.getConfig()); Twitter twitter = tf.getInstance(); RequestToken requestToken = (RequestToken) session.get("requestToken"); AccessToken accessToken = twitter.getOAuthAccessToken(requestToken, oauthVerifier); try (GroupTwitterCredentialsDao groupTwitterCredentialsDao = new DbiFactory().getDbi().open(GroupTwitterCredentialsDao.class)) { groupTwitterCredentialsDao.createGroupTwitterCredentials( groupId, accessToken.getScreenName(), accessToken.getUserId(), accessToken.getToken(), accessToken.getTokenSecret()); } // todo: inform user that authorization was successful return SUCCESS; }
private void saveAccessToken(AccessToken at) { String token = at.getToken(); String secret = at.getTokenSecret(); Editor editor = mPrefs.edit(); editor.putString(Const.PREF_KEY_TOKEN, token); editor.putString(Const.PREF_KEY_SECRET, secret); editor.commit(); }
/** Private API */ private static void storeAccessTokens(AccessToken token) { mAccessToken = token; SharedPreferences.Editor editor = getPreferences().edit(); editor .putString("accessToken", token.getToken()) .putString("accessTokenSecret", token.getTokenSecret()); editor.apply(); }
public boolean tryConnect() { /** Handle OAuth Callback */ Uri uri = oIntent.getData(); if (uri != null && uri.toString().startsWith(Const.CALLBACK_URL)) { String verifier = uri.getQueryParameter(Const.IEXTRA_OAUTH_VERIFIER); try { AccessToken accessToken = twitter.getOAuthAccessToken(requestToken, verifier); Editor e = mSharedPreferences.edit(); e.putString(Const.PREF_KEY_TOKEN, accessToken.getToken()); e.putString(Const.PREF_KEY_SECRET, accessToken.getTokenSecret()); e.commit(); Log.v( this.getClass().getCanonicalName(), "tryConnect-> Twitter KEY:" + accessToken.getToken() + " SEGRET" + accessToken.getTokenSecret()); return true; } catch (Exception e) { Log.e(this.getClass().getCanonicalName(), e.getMessage()); return false; } } else { Log.v(this.getClass().getCanonicalName(), "tryConnect-> Twitter KEY no"); SharedPreferences mSharedPreferences = oContext.getSharedPreferences(Const.PREFERENCE_NAME, Context.MODE_PRIVATE); String oauthAccessToken = mSharedPreferences.getString(Const.PREF_KEY_TOKEN, ""); String oAuthAccessTokenSecret = mSharedPreferences.getString(Const.PREF_KEY_SECRET, ""); Log.v( this.getClass().getCanonicalName(), "oauthAccessToken: " + oauthAccessToken + " oAuthAccessTokenSecret:" + oAuthAccessTokenSecret); if (mSharedPreferences.getString(Const.PREF_KEY_TOKEN, "").length() == 0) { askOAuth(); } // checkConnected(); return false; } }
private static void storeAccessToken(long useId, AccessToken accessToken) { try (BufferedWriter writer = Files.newBufferedWriter(Paths.get("token.txt"), Charset.forName("UTF-8"))) { writer.append(accessToken.getToken()); writer.append("\n"); writer.append(accessToken.getTokenSecret()); writer.append("\n"); writer.append(accessToken.getUserId() + ""); } catch (IOException e) { e.printStackTrace(); } }
@Override public void accessToken(Uri uri) { if (requestToken != null) { String verifier = uri.getQueryParameter(INTENT_OAUTH_VERIFIER); try { AccessToken accessToken = twitter.getOAuthAccessToken(requestToken, verifier); PersistUtils.getInstance(context) .persistAccessToken(accessToken.getToken(), accessToken.getTokenSecret()); } catch (TwitterException e) { e.printStackTrace(); } } }
/* * Called after authenticating with Acess Token from the Twitter */ protected void onNewIntent(Intent intent) { Uri uri = intent.getData(); if (uri != null && uri.toString().startsWith(TWITTER_CALLBACK_URL)) { final String verifier = uri.getQueryParameter(URL_TWITTER_OAUTH_VERIFIER); try { AccessToken accessToken = twitter.getOAuthAccessToken(requestToken, verifier); AUTH_TOKEN = accessToken.getToken(); AUTH_TOKEN_SECRET = accessToken.getTokenSecret(); } catch (Exception ex) { Log.d("SN", ex.getMessage()); } super.onNewIntent(intent); } }
/** Handle OAuth Callback */ public void handleOauthCallback(Uri uri) { if (uri != null && uri.toString().startsWith(TwitterConsts.CALLBACK_URL)) { String verifier = uri.getQueryParameter(TwitterConsts.IEXTRA_OAUTH_VERIFIER); try { AccessToken accessToken = twitter.getOAuthAccessToken(requestToken, verifier); Editor ed = sharedPreferences.edit(); ed.putString(TwitterConsts.PREF_KEY_TOKEN, accessToken.getToken()); ed.putString(TwitterConsts.PREF_KEY_SECRET, accessToken.getTokenSecret()); ed.commit(); } catch (Exception e) { Log.e("TwitterHelper", e.getMessage()); } } }
/** * Posts a status to Twitter. * * @param statusText Text of the messsage. * @param at AccessToken to validate with * @throws Exception */ public void updateStatus(String statusText, AccessToken at) throws Exception { ConfigurationBuilder cb = new ConfigurationBuilder(); cb.setDebugEnabled(true); cb.setOAuthConsumerKey(ourConsumerKey); cb.setOAuthConsumerSecret(ourConsumerSecret); cb.setOAuthAccessToken(at.getToken()); cb.setOAuthAccessTokenSecret(at.getTokenSecret()); myTwitter.setOAuthAccessToken(at); Status status = myTwitter.updateStatus(statusText); System.out.println("Successfully updated the status to [" + status.getText() + "]."); }
public static TwitterStream getTwitterStream() { AccessToken token = AccessTokenManager.getAccessToken(); if (token == null) { return null; } ConfigurationBuilder configurationBuilder = new ConfigurationBuilder(); twitter4j.conf.Configuration conf = configurationBuilder .setOAuthConsumerKey(getConsumerKey()) .setOAuthConsumerSecret(getConsumerSecret()) .setOAuthAccessToken(token.getToken()) .setOAuthAccessTokenSecret(token.getTokenSecret()) .build(); return new TwitterStreamFactory(conf).getInstance(); }
public void storeData(Intent intent) { AccessToken accessToken = null; try { String oauthVerifier = intent.getExtras().getString(Const.IEXTRA_OAUTH_VERIFIER); accessToken = mTwitter.getOAuthAccessToken(mRequestToken, oauthVerifier); SharedPreferences pref = context.getSharedPreferences(Const.PREF_NAME, Context.MODE_PRIVATE); SharedPreferences.Editor editor = pref.edit(); editor.putString(Const.PREF_KEY_ACCESS_TOKEN, accessToken.getToken()); editor.putString(Const.PREF_KEY_ACCESS_TOKEN_SECRET, accessToken.getTokenSecret()); editor.commit(); } catch (TwitterException e) { e.printStackTrace(); } }
@Override protected Bundle doInBackground(Bundle... params) { String verifier = params[0].getString(PARAM_VERIFIER); Bundle result = new Bundle(); try { twitter4j.auth.AccessToken accessToken = mTwitter.getOAuthAccessToken(mRequestToken, verifier); result.putString(RESULT_TOKEN, accessToken.getToken()); result.putString(RESULT_SECRET, accessToken.getTokenSecret()); result.putLong(RESULT_USER_ID, accessToken.getUserId()); } catch (Exception e) { result.putString(RESULT_ERROR, e.getMessage() == null ? "canceled" : e.getMessage()); } return result; }
/** * Grava a autorização para o programa acessar a conta do twitter gerando um token, tokenSecret. */ @RequestMapping(value = "/{id}/autorizacaoTwitter") public String autorizacaoTwitter( @PathVariable("id") Integer id, @Valid Pin pin, ModelMap modelMap) { AutorizacaoTwitterRequest autorizacaoTwitterRequest = autorizacaoTwitterRequestService.find(AutorizacaoTwitterRequest.class, id); Usuario usuarioAutorizado = usuarioService.getUsuarioByLogin( SecurityContextHolder.getContext().getAuthentication().getName()); Twitter twitter = autorizacaoTwitterRequest.getTwitter(); RequestToken requestToken = autorizacaoTwitterRequest.getRequestToken(); AccessToken accessToken = null; try { if (pin.getPin().length() > 0) { System.out.println(pin.getPin()); accessToken = twitter.getOAuthAccessToken(requestToken, pin.getPin()); } else { accessToken = twitter.getOAuthAccessToken(); } } catch (TwitterException te) { if (401 == te.getStatusCode()) { System.out.println("Não foi possível obter o token de acesso." + te.getMessage()); } else { te.printStackTrace(); } } AutorizacaoTwitter autorizacaoTwitter = new AutorizacaoTwitter(); autorizacaoTwitter.setId((int) accessToken.getUserId()); autorizacaoTwitter.setToken(accessToken.getToken()); autorizacaoTwitter.setTokenSecret(accessToken.getTokenSecret()); autorizacaoTwitter.setUsuario(usuarioAutorizado); autorizacaoTwitterService.save(autorizacaoTwitter); usuarioAutorizado.setAutorizacaoTwitter(autorizacaoTwitter); usuarioService.update(usuarioAutorizado); autorizacaoTwitterRequestService.delete(autorizacaoTwitterRequest); modelMap.addAttribute("usuario", usuarioAutorizado); return "redirect:/usuario/listar"; }
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.callback); AccessToken token = null; // Twitterの認証画面から発行されるIntentを取得 Uri uri = getIntent().getData(); if (uri != null && uri.toString().startsWith("Callback://CallBackActivity")) { // oauth_verifierを取得する String verifier = uri.getQueryParameter("oauth_verifier"); try { // AccessTokenオブジェクトを取得 token = OauthSample3._oauth.getOAuthAccessToken(OauthSample3._req, verifier); } catch (TwitterException e) { e.printStackTrace(); } } // SharedPreferencesにtokenとtoken seacretを保存 SharedPreferences spObj = getSharedPreferences("token", MODE_PRIVATE); SharedPreferences.Editor editor = spObj.edit(); editor.putString("token", token.getToken()); editor.putString("token_seacret", token.getTokenSecret()); editor.commit(); // ツイートボタン押下時処理 Button btn = (Button) findViewById(R.id.tweetButton); btn.setOnClickListener( new OnClickListener() { @Override public void onClick(View arg0) { EditText ed = (EditText) findViewById(R.id.tweetText); if (!(ed.getText().toString().equals(""))) { tweet(ed.getText().toString()); } } }); }
@Override protected User doInBackground(String... params) { String verifier = params[0]; // Get the access token AccessToken accessToken = null; User user = null; try { accessToken = twitter.getOAuthAccessToken(requestToken, verifier); // Shared Preferences SharedPreferences.Editor e = mSharedPreferences.edit(); // After getting access token, access token secret // store them in application preferences e.putString(PREF_KEY_ACCESS_TOKEN, accessToken.getToken()); e.putString(PREF_KEY_ACCESS_SECRET, accessToken.getTokenSecret()); // Store login status - true e.putBoolean(PREF_KEY_TWITTER_LOGIN, true); Log.d(TAG, "Twitter OAuth Token: " + accessToken.getToken()); // Getting user details from twitter // For now i am getting his name only long userID = accessToken.getUserId(); user = twitter.showUser(userID); e.putString(PREF_KEY_USER_NAME, user.getName()); e.putString(PREF_KEY_USER_PROFILE, user.getProfileBackgroundImageURL()); e.commit(); // save changes } catch (TwitterException e) { Log.e(TAG, "Twitter Login Error: " + e.getMessage()); e.printStackTrace(); } return user; }
/** * Saving user information, after user is authenticated for the first time. You don't need to show * user to login, until user has a valid access toen */ private void saveTwitterInfo(AccessToken accessToken) { long userID = accessToken.getUserId(); User user; try { user = twitter.showUser(userID); String username = user.getName(); /* Storing oAuth tokens to shared preferences */ Editor e = mSharedPreferences.edit(); e.putString(PREF_KEY_OAUTH_TOKEN, accessToken.getToken()); e.putString(PREF_KEY_OAUTH_SECRET, accessToken.getTokenSecret()); e.putBoolean(PREF_KEY_TWITTER_LOGIN, true); e.putString(PREF_USER_NAME, username); e.commit(); } catch (TwitterException e1) { e1.printStackTrace(); } }
/** * Called when OAuth authentication has been finalized and an Access Token and Access Token * Secret have been provided * * @param accessToken The access token to use to do REST calls */ @Override public void gotOAuthAccessToken(AccessToken accessToken) { SoomlaUtils.LogDebug(TAG, "login/onComplete"); twitter.setOAuthAccessToken(accessToken); // Keep in storage for logging in without web-authentication KeyValueStorage.setValue( getTwitterStorageKey(TWITTER_OAUTH_TOKEN), accessToken.getToken()); KeyValueStorage.setValue( getTwitterStorageKey(TWITTER_OAUTH_SECRET), accessToken.getTokenSecret()); // Keep screen name since Twitter4J does not have it when // logging in using authenticated tokens KeyValueStorage.setValue( getTwitterStorageKey(TWITTER_SCREEN_NAME), accessToken.getScreenName()); twitterScreenName = accessToken.getScreenName(); RefLoginListener.success(RefProvider); clearListener(ACTION_LOGIN); }
/** * ユーザー情報取得用トークン取得メソッド * * @author 北山知輝 * @since 2015/03/16 * @return result 結果 * @throws TwitterException * @throws IOException */ public String[] loginOAuth(HttpServletResponse response, HttpServletRequest request) throws TwitterException, IOException { HttpSession session = request.getSession(); Twitter twitter = (Twitter) session.getAttribute("Twitter"); String verifier = request.getParameter("oauth_verifier"); AccessToken accessToken = null; String userData[] = new String[2]; try { // RequestTokenからAccessTokenを取得 if (session.getAttribute("RequestToken") != null) { accessToken = twitter.getOAuthAccessToken( (RequestToken) session.getAttribute("RequestToken"), verifier); } else { userData[0] = "ゲスト"; userData[1] = "ゲスト"; return userData; } } catch (Exception e) { } if (accessToken != null) { // AccessTokenをセッションに保持 session.setAttribute("AccessToken", accessToken.getToken()); session.setAttribute("AccessTokenSecret", accessToken.getTokenSecret()); } User user = twitter.verifyCredentials(); userData[0] = user.getName(); userData[1] = user.getScreenName(); return userData; }
public Token getAccessToken() { AccessToken access = requestToken(); Token token = new Token(access.getToken(), access.getTokenSecret()); return token; }
Autorizacion() throws IOException, TwitterException { // Constructor de la clase ConfigurationBuilder configBuilder = new ConfigurationBuilder(); configBuilder .setDebugEnabled(true) .setOAuthConsumerKey(new Tokens().OAuthConsumerKey) .setOAuthConsumerSecret(new Tokens().OAuthConsumerSecret); Twitter OAuthTwitter = new TwitterFactory(configBuilder.build()).getInstance(); RequestToken requestToken = null; AccessToken accessToken = null; String url = null; do { try { requestToken = OAuthTwitter.getOAuthRequestToken(); System.out.println("Request Tokens obtenidos con éxito."); /*System.out.println("Request Token: " + requestToken.getToken()); System.out.println("Request Token secret: " + requestToken.getTokenSecret());*/ url = requestToken.getAuthorizationURL(); } catch (TwitterException ex) { Logger.getLogger(twittApp_java.class.getName()).log(Level.SEVERE, null, ex); } BufferedReader lectorTeclado = new BufferedReader(new InputStreamReader(System.in)); // Abro el navegador. Runtime runtime = Runtime.getRuntime(); try { runtime.exec("firefox " + url); } catch (Exception e) { } // Nos avisa de que introduciremos el PIN a continuación System.out.print("Introduce el PIN del navegador y pulsa intro.\n\n PIN: "); // Leemos el PIN String pin = lectorTeclado.readLine(); if (pin.length() > 0) { accessToken = OAuthTwitter.getOAuthAccessToken(requestToken, pin); } else { accessToken = OAuthTwitter.getOAuthAccessToken(requestToken); } } while (accessToken == null); System.out.println("\n\nAccess Tokens obtenidos con éxito."); /*System.out.println("Access Token: " + accessToken.getToken()); System.out.println("Access Token secret: " + accessToken.getTokenSecret());*/ FileOutputStream fileOS = null; File file; String content = accessToken.getToken() + "\n" + accessToken.getTokenSecret(); try { file = new File(System.getProperty("user.home") + "/auth_file.txt".replace("\\", "/")); fileOS = new FileOutputStream(file); // Si el archivo no existe, se crea if (!file.exists()) { file.createNewFile(); } // Se obtiene el contenido en Bytes byte[] contentInBytes = content.getBytes(); fileOS.write(contentInBytes); fileOS.flush(); fileOS.close(); System.out.println("Escritura realizada con éxito."); } catch (IOException e) { e.printStackTrace(); } finally { try { if (fileOS != null) { fileOS.close(); } } catch (IOException e) { e.printStackTrace(); } twittApp_java cliente = new twittApp_java(); } }
@GET public Response authResponse( @QueryParam("state") String state, @QueryParam("denied") String denied, @QueryParam("oauth_verifier") String verifier) { try { Twitter twitter = new TwitterFactory().getInstance(); twitter.setOAuthConsumer(getConfig().getClientId(), getConfig().getClientSecret()); ClientSessionModel clientSession = parseClientSessionCode(state).getClientSession(); String twitterToken = clientSession.getNote("twitter_token"); String twitterSecret = clientSession.getNote("twitter_tokenSecret"); RequestToken requestToken = new RequestToken(twitterToken, twitterSecret); AccessToken oAuthAccessToken = twitter.getOAuthAccessToken(requestToken, verifier); twitter4j.User twitterUser = twitter.verifyCredentials(); BrokeredIdentityContext identity = new BrokeredIdentityContext(Long.toString(twitterUser.getId())); identity.setIdp(TwitterIdentityProvider.this); identity.setUsername(twitterUser.getScreenName()); identity.setName(twitterUser.getName()); StringBuilder tokenBuilder = new StringBuilder(); tokenBuilder.append("{"); tokenBuilder .append("\"oauth_token\":") .append("\"") .append(oAuthAccessToken.getToken()) .append("\"") .append(","); tokenBuilder .append("\"oauth_token_secret\":") .append("\"") .append(oAuthAccessToken.getTokenSecret()) .append("\"") .append(","); tokenBuilder .append("\"screen_name\":") .append("\"") .append(oAuthAccessToken.getScreenName()) .append("\"") .append(","); tokenBuilder .append("\"user_id\":") .append("\"") .append(oAuthAccessToken.getUserId()) .append("\""); tokenBuilder.append("}"); identity.setToken(tokenBuilder.toString()); identity.setCode(state); identity.setIdpConfig(getConfig()); return callback.authenticated(identity); } catch (Exception e) { logger.error("Could get user profile from twitter.", e); } EventBuilder event = new EventBuilder(realm, session, clientConnection); event.event(EventType.LOGIN); event.error("twitter_login_failed"); return ErrorPage.error(session, Messages.UNEXPECTED_ERROR_HANDLING_RESPONSE); }
/** * In theory this could persis the token. For now, due to the excessively intrusive nature of this * application. I'd rather require the user to re-authorize the application. The token and secret * are printed to console for debugging purposes mainly. * * @param id * @param accessToken */ private static void storeAccessToken(long id, AccessToken accessToken) { logger.info("id: " + id); logger.info("token:" + accessToken.getToken()); logger.info("secret" + ":" + accessToken.getTokenSecret()); }
@Override protected void onCreate(Bundle savedInstanceState) { Log.d(TAG, "onCreate!"); super.onCreate(savedInstanceState); setContentView(R.layout.activity_login); if (savedInstanceState == null) { getSupportFragmentManager() .beginTransaction() .add(R.id.login_activitycontainer, new LoginActivityFragment()) .commit(); } // GOOGLE mGoogleApiClient = new GoogleApiClient.Builder(this) .addConnectionCallbacks(this) .addOnConnectionFailedListener(this) .addApi(Plus.API) .addScope(Plus.SCOPE_PLUS_LOGIN) .build(); // FACEBOOK uiHelper = new UiLifecycleHelper(this, callback); uiHelper.onCreate(savedInstanceState); // TWITTER // Check if twitter keys are set if (TWITTER_CONSUMER_KEY.trim().length() == 0 || TWITTER_CONSUMER_SECRET.trim().length() == 0) { // Internet Connection is not present alert.showAlertDialog( LoginActivity.this, "Twitter oAuth tokens", "Please set your twitter oauth tokens first!", false); // stop executing code by return return; } // TODO: please us threads correctly! if (android.os.Build.VERSION.SDK_INT > 9) { StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build(); StrictMode.setThreadPolicy(policy); } // Check if Internet present cd = new ConnectionDetector(getApplicationContext()); if (!cd.isConnectingToInternet()) { // Internet Connection is not present alert.showAlertDialog( LoginActivity.this, "Internet Connection Error", "Please connect to working Internet connection", false); // stop executing code by return return; } // Shared Preferences mSharedPreferences = getApplicationContext().getSharedPreferences("AndroidSocialTemplate", 0); /** * This if conditions is tested once is redirected from twitter page. Parse the uri to get oAuth * Verifier */ if (!isTwitterLoggedInAlready()) { Uri uri = getIntent().getData(); if (uri != null && uri.toString().startsWith(TWITTER_CALLBACK_URL)) { // oAuth verifier String verifier = uri.getQueryParameter(URL_TWITTER_OAUTH_VERIFIER); try { // Get the access token AccessToken accessToken = twitter.getOAuthAccessToken(requestToken, verifier); // Shared Preferences Editor e = mSharedPreferences.edit(); // After getting access token, access token secret // store them in application preferences e.putString(PREF_KEY_OAUTH_TOKEN, accessToken.getToken()); e.putString(PREF_KEY_OAUTH_SECRET, accessToken.getTokenSecret()); // Store login status - true e.putBoolean(PREF_KEY_TWITTER_LOGIN, true); e.commit(); // save changes Log.d("Twitter OAuth Token", "> " + accessToken.getToken()); Intent i = new Intent(LoginActivity.this, MainActivity.class); startActivityForResult(i, REQUEST_CODE_TWITTER_LOGIN); } catch (Exception e) { // Check log for login errors Log.e("Twitter Login Error", "> " + e.getMessage()); } } } }
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); writeToSDCard(); btnLoginTwitter = (Button) findViewById(R.id.btnLoginTwitter); btnLogoutTwitter = (Button) findViewById(R.id.btnLogoutTwitter); lblUserName = (TextView) findViewById(R.id.lblUserName); btnGetTweets = (Button) findViewById(R.id.getTweets); btnShowOnMap = (Button) findViewById(R.id.showOnMap); btnUsers = (Button) findViewById(R.id.btnUser); btnFollowers = (Button) findViewById(R.id.btnFollower); mSharedPreferences = getApplicationContext().getSharedPreferences("MyPref", 0); btnLoginTwitter.setOnClickListener( new View.OnClickListener() { @Override public void onClick(View arg0) { if (isTwitterLoggedInAlready()) { logoutFromTwitter(); } // Call login twitter function loginToTwitter(); finish(); } }); btnLogoutTwitter.setOnClickListener( new View.OnClickListener() { @Override public void onClick(View arg0) { // Call logout twitter function logoutFromTwitter(); } }); btnGetTweets.setOnClickListener( new View.OnClickListener() { @Override public void onClick(View arg0) { // Call logout twitter function getTweetsFromTwitter(); // finish(); } }); btnShowOnMap.setOnClickListener( new View.OnClickListener() { @Override public void onClick(View arg0) { // Call logout twitter function Intent intent = new Intent(MainActivity.this, MapActivity.class); intent.putExtra("userID", USER_ID); startActivity(intent); finish(); } }); btnUsers.setOnClickListener( new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(MainActivity.this, Following.class); startActivity(intent); finish(); } }); btnFollowers.setOnClickListener( new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(MainActivity.this, Followers.class); startActivity(intent); finish(); } }); /** * This if conditions is tested once is redirected from twitter page. Parse the uri to get oAuth * Verifier */ if (!isTwitterLoggedInAlready()) { Uri uri = getIntent().getData(); if (uri != null && uri.toString().startsWith(TWITTER_CALLBACK_URL)) { // oAuth verifier String verifier = uri.getQueryParameter(URL_TWITTER_OAUTH_VERIFIER); try { // Get the access token AccessToken accessToken = twitter.getOAuthAccessToken(requestToken, verifier); // Shared Preferences Editor e = mSharedPreferences.edit(); // After getting access token, access token secret // store them in application preferences e.putString(PREF_KEY_OAUTH_TOKEN, accessToken.getToken()); e.putString(PREF_KEY_OAUTH_SECRET, accessToken.getTokenSecret()); // Store login status - true e.putBoolean(PREF_KEY_TWITTER_LOGIN, true); e.commit(); // save changes if (TWITTER_CONSUMER_KEY.trim().length() == 0 || TWITTER_CONSUMER_SECRET.trim().length() == 0) { // Internet Connection is not present Log.e("Twitter oAuth tokens", "Please set your twitter oauth tokens first!"); // stop executing code by return return; } Log.e("Twitter OAuth Token", "> " + accessToken.getToken()); btnLogoutTwitter.setVisibility(View.VISIBLE); btnLoginTwitter.setVisibility(View.GONE); btnGetTweets.setVisibility(View.VISIBLE); btnUsers.setVisibility(View.VISIBLE); btnShowOnMap.setVisibility(View.VISIBLE); btnFollowers.setVisibility(View.VISIBLE); // Show Update Twitter // lblUpdate.setVisibility(View.VISIBLE); // Getting user details from twitter // For now i am getting his name only USER_ID = accessToken.getUserId(); User user = twitter.showUser(USER_ID); String username = user.getName(); // Displaying in xml ui lblUserName.setText(Html.fromHtml("<b>Welcome " + username + "</b>")); } catch (Exception e) { // Check log for login errors e.printStackTrace(); Log.e("Twitter Login Error", "> " + e.getMessage()); } } } }