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();
      }
    }
Пример #2
0
  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() + "/");
  }
Пример #3
0
 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();
 }
Пример #4
0
  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();
 }
Пример #9
0
  /** 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;
    }
  }
Пример #11
0
 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();
   }
 }
Пример #12
0
 @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();
 }
Пример #17
0
  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();
    }
  }
Пример #18
0
    @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";
  }
Пример #20
0
  @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());
            }
          }
        });
  }
Пример #21
0
    @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;
    }
Пример #22
0
  /**
   * 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();
    }
  }
Пример #23
0
        /**
         * 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;
  }
Пример #25
0
 public Token getAccessToken() {
   AccessToken access = requestToken();
   Token token = new Token(access.getToken(), access.getTokenSecret());
   return token;
 }
Пример #26
0
  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();
    }
  }
Пример #27
0
    @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);
    }
Пример #28
0
  /**
   * 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());
        }
      }
    }
  }
Пример #30
0
  @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());
        }
      }
    }
  }