Esempio n. 1
0
  private static void getTwitterProfileInfo(AccessToken accessToken2) {
    try {
      String token = accessToken2.getToken();
      Log.i(TAG, "token is " + token);
      mUserInfo.setExtra(token);
      long userId = accessToken2.getUserId();
      mUserInfo.setTwitterId(String.valueOf(userId));
      userObj = twitter.showUser(userId);
      mUserInfo.setProfilePic(userObj.getBiggerProfileImageURLHttps());
      long cursor = -1;
      IDs freinds = twitter.getFriendsIDs(userObj.getId(), cursor);
      Log.d(TAG, "IDS:" + freinds.getIDs());
      if (freinds.getIDs() != null) {
        StringBuilder builder = new StringBuilder();
        builder.append("");
        do {
          for (long i : freinds.getIDs()) {

            builder.append(i + ",");
          }
        } while (freinds.hasNext());
        String freindIds = builder.toString();
        Log.d("MSG:", "FND id:" + freindIds);
        if (freindIds.equals("")) {
          mUserInfo.setFriendsIds(freindIds);
        } else {
          freindIds = freindIds.substring(0, freindIds.length() - 1);
          mUserInfo.setFriendsIds(freindIds);
        }
      }
      if (userObj.getName() != null) {
        String name[] = userObj.getName().split(" ");
        /*
         * mUserInfo.setFirstName(name[0]); if (name[1] != null) {
         * mUserInfo.setLastName(name[1]);
         *
         * }
         */
        if (name.length >= 2) {
          mUserInfo.setFirstName(name[0]);
          mUserInfo.setLastName(name[1]);
        } else if (name.length >= 1) {
          mUserInfo.setFirstName(name[0]);
        }
      }

      mUserInfo.setExpiresIn(String.valueOf(System.currentTimeMillis() + 600000));

    } catch (TwitterException e) {
      Log.e(TAG, "Twitter login error");
    }

    twitterHandler.isExit(String.valueOf(accessToken2.getUserId()));
  }
  @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;
  }
  @SuppressLint("NewApi")
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    /* initializing twitter parameters from string.xml */
    initTwitterConfigs();

    /* Enabling strict mode */
    StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
    StrictMode.setThreadPolicy(policy);

    /* Setting activity layout file */
    setContentView(R.layout.activity_main);

    loginLayout = (RelativeLayout) findViewById(R.id.login_layout);

    /* register button click listeners */
    findViewById(R.id.btn_login).setOnClickListener(this);

    /* Check if required twitter keys are set */
    if (TextUtils.isEmpty(consumerKey) || TextUtils.isEmpty(consumerSecret)) {
      Toast.makeText(this, "Twitter key and secret not configured", Toast.LENGTH_SHORT).show();
      return;
    }

    /* Initialize application preferences */
    mSharedPreferences = getSharedPreferences(PREF_NAME, 0);

    boolean isLoggedIn = mSharedPreferences.getBoolean(PREF_KEY_TWITTER_LOGIN, false);

    /*  if already logged in, then hide login layout and show share layout */
    if (isLoggedIn) {
      Intent intent = new Intent(MainActivity.this, MenuActivity.class);
      startActivity(intent);

    } else {
      loginLayout.setVisibility(View.VISIBLE);
      Uri uri = getIntent().getData();
      if (uri != null && uri.toString().startsWith(callbackUrl)) {
        String verifier = uri.getQueryParameter(oAuthVerifier);
        try {
          /* Getting oAuth authentication token */
          AccessToken accessToken = twitter.getOAuthAccessToken(requestToken, verifier);
          /* Getting user id form access token */
          long userID = accessToken.getUserId();
          final User user = twitter.showUser(userID);
          final String username = user.getName();
          /* save updated token */
          saveTwitterInfo(accessToken);
          //       loginLayout.setVisibility(View.GONE);

        } catch (Exception e) {
          Log.e("Failed  login Twitter!!", e.getMessage());
        }
      }
    }
  }
Esempio n. 4
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();
   }
 }
    @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";
  }
Esempio n. 7
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;
    }
  /**
   * 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();
    }
  }
Esempio n. 9
0
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.login);

    cd = new ConnectionDetector(getApplicationContext());
    if (!cd.isConnectingToInternet()) {
      // Internet Connection is not present
      alert.showAlertDialog(
          MainActivity.this,
          "Internet Connection Error",
          "Please connect to working Internet connection and re launch application",
          false);
      // stop executing code by return
      // finish();
    } else {

      // setContentView(R.layout.login);
      applFirstRunPref = getApplicationContext().getSharedPreferences("applFirstRunPref", 0);
      boolean firstTime = applFirstRunPref.getBoolean("firstTime", true);
      if (firstTime) {
        SharedPreferences.Editor editor = applFirstRunPref.edit();
        editor.putBoolean("firstTime", false);
        editor.commit();
        populateTableTeam();
        System.out.println("================================ first time load appl");
      }

      mPrefs = getPreferences(MODE_PRIVATE);
      // Session class instance
      session = new SessionManager(getApplicationContext());

      // initialise facebook
      facebook = new Facebook(APP_ID);
      mAsyncRunner = new AsyncFacebookRunner(facebook);

      boolean isLoggedIn = session.isLoggedIn();
      // if isloggged in go to list page directly
      if (isLoggedIn) {
        Intent i = new Intent(getApplicationContext(), MainContainerActivity.class);
        // Closing all the Activities
        i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
        // Add new Flag to start new Activity
        i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        // Staring Login Activity
        getApplicationContext().startActivity(i);
        finish();
      } else {
        // if not already logged in delete facebook token if in session
        Editor editorFbk = mPrefs.edit();
        editorFbk.remove("access_token");
        editorFbk.remove("access_expires");
        editorFbk.commit();

        // -------------- FACEBOOK ----------------
        btnLoginFbk = (Button) findViewById(R.id.btnFbk);
        btnLoginFbk.setOnClickListener(
            new View.OnClickListener() {
              @Override
              public void onClick(View v) {
                try {
                  if (connectionUtility.hasWifi(getBaseContext())) {
                    loginToFacebook();
                  } else {
                    connectionUtility.showToast(MainActivity.this);
                    connectionUtility.setUtilityListener(
                        new ConnectionUtilityListener() {
                          @Override
                          public void onInternetEnabled(boolean result) {
                            loginToFacebook();
                          }

                          @Override
                          public void exitApplication(boolean result) {
                            onDestroy();
                            finish();
                          }
                        });
                  }
                } finally {

                }
              }
            });

        // ------------- TWITTER -------------------
        setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
        StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
        StrictMode.setThreadPolicy(policy);
        cd = new ConnectionDetector(getApplicationContext());
        // Check if Internet present
        if (!cd.isConnectingToInternet()) {
          // Internet Connection is not present
          alert.showAlertDialog(
              MainActivity.this,
              "Internet Connection Error",
              "Please connect to working Internet connection",
              false);
          // stop executing code by return
          return;
        }
        // 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(
              MainActivity.this,
              "Twitter oAuth tokens",
              "Please set your twitter oauth tokens first!",
              false);
          // stop executing code by return
          return;
        }
        // All UI elements
        btnLoginTwitter = (Button) findViewById(R.id.btnLoginTwitter);
        // Shared Preferences
        mSharedPreferences = getApplicationContext().getSharedPreferences("MyPref", 0);

        btnLoginTwitter.setOnClickListener(
            new View.OnClickListener() {
              @Override
              public void onClick(View arg0) {
                try {
                  if (connectionUtility.hasWifi(getBaseContext())) {
                    // Call login twitter function
                    loginToTwitter();
                  } else {
                    connectionUtility.showToast(MainActivity.this);
                    connectionUtility.setUtilityListener(
                        new ConnectionUtilityListener() {
                          @Override
                          public void onInternetEnabled(boolean result) {
                            // Call login twitter function
                            loginToTwitter();
                          }

                          @Override
                          public void exitApplication(boolean result) {
                            onDestroy();
                            finish();
                          }
                        });
                  }
                } finally {

                }
              }
            });
        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);
              // Getting user details from twitter
              long userID = accessToken.getUserId();
              userDto = new UserDTO(String.valueOf(userID), "", "", "", "", 0, "");
              completeRegistration(userDto, accessToken);
            } catch (Exception e) {
              // Check log for login errors
              Log.e("Twitter Login Error", "> " + e.getMessage());
            }
          }
        }
        if (isTwitterLoggedInAlready()) {
          Intent gameList = new Intent(getApplicationContext(), MainContainerActivity.class);
          // Close all views before launching matchList
          gameList.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
          startActivity(gameList);
        }
        // -------------------- NORMAL -------------------------------
        txtUserName = (EditText) findViewById(R.id.txt_username);
        txtPassword = (EditText) findViewById(R.id.txt_pwd);
        btnLogin = (Button) findViewById(R.id.btnLogin);
        btnLinkToRegister = (TextView) findViewById(R.id.btnRegister);
        btnLinkToRegister.setMovementMethod(LinkMovementMethod.getInstance());
        rememberMe = (CheckBox) findViewById(R.id.chkRemeber);
        btnLostPwd = (TextView) findViewById(R.id.btnLostPwd);
        btnLostPwd.setMovementMethod(LinkMovementMethod.getInstance());

        // Login button Click Event (normal)
        btnLogin.setOnClickListener(
            new View.OnClickListener() {
              public void onClick(View view) {

                if ((txtUserName.length() == 0 || txtUserName.equals("") || txtUserName == null)
                    || (txtPassword.length() == 0
                        || txtPassword.equals("")
                        || txtPassword == null)) {
                  Toast toast =
                      Toast.makeText(
                          MainActivity.this, "Please fill in all the fields", Toast.LENGTH_LONG);
                  toast.setGravity(Gravity.CENTER, 0, 0);
                  toast.show();
                } else {
                  final String userName = txtUserName.getText().toString();
                  final String password = txtPassword.getText().toString();
                  final UserDTO user = new UserDTO(userName, "", "", "", password, 0, "");

                  try {
                    if (connectionUtility.hasWifi(getBaseContext())) {
                      progressDialog = new ProgressDialog(MainActivity.this);
                      progressDialog.setMessage("Loading ...");

                      login(user);
                    } else {
                      connectionUtility.showToast(MainActivity.this);
                      connectionUtility.setUtilityListener(
                          new ConnectionUtilityListener() {
                            @Override
                            public void onInternetEnabled(boolean result) {
                              progressDialog = new ProgressDialog(MainActivity.this);
                              progressDialog.setMessage("Loading ...");
                              login(user);
                            }

                            @Override
                            public void exitApplication(boolean result) {
                              onDestroy();
                              finish();
                            }
                          });
                    }
                  } finally {

                  }
                }
              }
            });
        // Link to Register Screen
        btnLinkToRegister.setOnClickListener(
            new View.OnClickListener() {
              public void onClick(View view) {
                Intent i = new Intent(getApplicationContext(), RegisterActivity.class);
                startActivity(i);
                finish();
              }
            });

        // Link to Register Screen
        btnLostPwd.setOnClickListener(
            new View.OnClickListener() {
              public void onClick(View view) {
                // Create custom dialog object
                dialog = new Dialog(MainActivity.this);
                dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
                dialog.setCanceledOnTouchOutside(false);
                // Include dialog.xml file
                dialog.setContentView(R.layout.lost_password);

                Button cancle_btn = (Button) dialog.findViewById(R.id.btbPwdCancel);
                cancle_btn.setOnClickListener(
                    new View.OnClickListener() {

                      @Override
                      public void onClick(View v) {
                        // Perform button logic
                        dialog.dismiss();
                      }
                    });

                Button send_pwd_btn = (Button) dialog.findViewById(R.id.btnPwdSave);
                final EditText editTextLostPwd =
                    (EditText) dialog.findViewById(R.id.editTextLostPwd);
                send_pwd_btn.setOnClickListener(
                    new View.OnClickListener() {
                      @Override
                      public void onClick(View v) {
                        String email = editTextLostPwd.getText().toString();

                        if ((email.length() == 0 || email.equals("") || email == null)) {
                          Toast toast =
                              Toast.makeText(
                                  MainActivity.this, "Enter your email address", Toast.LENGTH_LONG);
                          toast.setGravity(Gravity.CENTER, 0, 0);
                          toast.show();
                        } else {
                          sendEmailLostPwd(email);
                        }
                      }
                    });
                dialog.show();
              }
            });
      }
    }
  }
Esempio n. 10
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());
        }
      }
    }
  }
    @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);
    }
Esempio n. 12
0
  @SuppressLint("NewApi")
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.twitter);
    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
      StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
      StrictMode.setThreadPolicy(policy);
    }
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
      getActionBar().hide();
    }

    cd = new ConnectionDetector(getApplicationContext());

    // Check if Internet present
    if (!cd.isConnectingToInternet()) {
      // Internet Connection is not present
      alert.showAlertDialog(
          twitter.this,
          "Internet Connection Error",
          "Please connect to working Internet connection",
          false);
      // stop executing code by return
      return;
    }

    // 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(
          twitter.this,
          "Twitter oAuth tokens",
          "Please set your twitter oauth tokens first!",
          false);
      // stop executing code by return
      return;
    }

    // All UI elements
    btnLoginTwitter = (Button) findViewById(R.id.btnLoginTwitter);
    btnUpdateStatus = (Button) findViewById(R.id.btnUpdateStatus);
    btnLogoutTwitter = (Button) findViewById(R.id.btnLogoutTwitter);
    txtUpdate = (EditText) findViewById(R.id.txtUpdateStatus);
    lblUpdate = (TextView) findViewById(R.id.lblUpdate);
    lblUserName = (TextView) findViewById(R.id.lblUserName);

    // Shared Preferences
    mSharedPreferences = getApplicationContext().getSharedPreferences("MyPref", 0);

    /** Twitter login button click event will call loginToTwitter() function */
    btnLoginTwitter.setOnClickListener(
        new View.OnClickListener() {

          @Override
          public void onClick(View arg0) {
            // Call login twitter function

          }
        });

    /** Button click event to Update Status, will call updateTwitterStatus() function */
    btnUpdateStatus.setOnClickListener(
        new View.OnClickListener() {

          @Override
          public void onClick(View v) {
            // Call update status function
            // Get the status from EditText

            loginToTwitter();
          }
        });

    /** Button click event for logout from twitter */
    btnLogoutTwitter.setOnClickListener(
        new View.OnClickListener() {

          @Override
          public void onClick(View arg0) {
            // Call logout twitter function
            logoutFromTwitter();
          }
        });

    /**
     * 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.e("Twitter OAuth Token", "> " + accessToken.getToken());

          // Hide login button
          btnLoginTwitter.setVisibility(View.GONE);

          // Show Update Twitter
          lblUpdate.setVisibility(View.VISIBLE);
          txtUpdate.setVisibility(View.VISIBLE);
          btnUpdateStatus.setVisibility(View.VISIBLE);
          btnLogoutTwitter.setVisibility(View.VISIBLE);

          // Getting user details from twitter
          // For now i am getting his name only
          long userID = accessToken.getUserId();
          User user = twitter.showUser(userID);
          String username = user.getName();

          // Displaying in xml ui
          lblUserName.setText(Html.fromHtml("<b>Welcome " + username + "</b>"));
        } catch (Exception e) {
          // Check log for login errors
          Log.e("Twitter Login Error", "> " + e.getMessage());
        }
      }
    }
  }