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 String getCurrentUserScreenName() {

    try {
      if (mTwitter == null) {
        ConfigurationBuilder confbuilder = new ConfigurationBuilder();
        Configuration conf =
            confbuilder
                .setOAuthConsumerKey(Const.CONSUMER_KEY)
                .setOAuthConsumerSecret(Const.CONSUMER_SECRET)
                .build();
        mTwitter = new TwitterFactory(conf).getInstance();
      }
      SharedPreferences pref = context.getSharedPreferences(Const.PREF_NAME, Context.MODE_PRIVATE);
      String accessToken = pref.getString(Const.PREF_KEY_ACCESS_TOKEN, null);
      String accessTokenSecret = pref.getString(Const.PREF_KEY_ACCESS_TOKEN_SECRET, null);
      if (accessToken == null || accessTokenSecret == null) {
        Toast.makeText(activity, "please Login first", Toast.LENGTH_SHORT).show();
        return null;
      }

      mTwitter.setOAuthAccessToken(new AccessToken(accessToken, accessTokenSecret));
      return mTwitter.getScreenName();

    } catch (TwitterException te) {
      te.printStackTrace();
    }
    return null;
  }
Beispiel #3
0
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.post);

    twitter = ((TwittApplication) getApplication()).getTwitter();

    buttonTweet = (Button) findViewById(R.id.buttonTweet);
    buttonTweet.setOnClickListener(this);

    buttonClear = (Button) findViewById(R.id.buttonClear);
    buttonClear.setOnClickListener(this);

    buttonCancel = (Button) findViewById(R.id.buttonCancel);
    buttonCancel.setOnClickListener(this);

    myName = (TextView) findViewById(R.id.myName);
    try {
      myName.setText(twitter.getScreenName());
    } catch (IllegalStateException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
    } catch (TwitterException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
    }
  }
  @RequestMapping(value = "/{username}/accountInfo", method = RequestMethod.GET)
  public ResponseEntity<TwitterAccountInfo> getAccountInfo(@PathVariable String username) {

    TwitterAccountInfo twitterAccountInfo = new TwitterAccountInfo();

    TwitterCredentials twitterCredentials =
        twitterCredentialsService.getTwitterCredentialsForUsername(username);
    Twitter twitter = TwitterAppFactory.getTwitterInstance();
    AccessToken accessTokenObj =
        new AccessToken(
            twitterCredentials.getAccessToken(), twitterCredentials.getAccessTokenSecret());

    twitter.setOAuthAccessToken(accessTokenObj);

    try {
      String twitterScreenName = twitter.getScreenName();
      User twitterUser = twitter.showUser(twitterScreenName);

      twitterAccountInfo.setUsername(twitterScreenName);
      twitterAccountInfo.setFullName(twitterUser.getName());
      twitterAccountInfo.setProfileImageUrl(twitterUser.getProfileImageURL());
      twitterAccountInfo.setFollowersCount(twitterUser.getFollowersCount());
      twitterAccountInfo.setFriendsCount(twitterUser.getFriendsCount());

    } catch (Exception e) {
      LOG.warn(e.getMessage());
      return new ResponseEntity<TwitterAccountInfo>(HttpStatus.BAD_REQUEST);
    }

    return new ResponseEntity<TwitterAccountInfo>(twitterAccountInfo, HttpStatus.OK);
  }
 @Override
 public String getScreenName() {
   try {
     return twitter.getScreenName();
   } catch (IllegalStateException e) {
     throw new ScriptusRuntimeException(e);
   } catch (TwitterException e) {
     throw new ScriptusRuntimeException(e);
   }
 }
  /** Start listening to tweets. */
  public void start() throws IllegalStateException, TwitterException {
    twitter = new TwitterFactory().getInstance();
    stream = new TwitterStreamFactory().getInstance();

    LOGGER.info("Connected to Twitter as: {}", twitter.getScreenName());

    LOGGER.info("Starting the Twitter stream listener");
    stream.addListener(new GetMentionsListener(twitter));
    stream.user(); // Start reading to user stream
  }
  /**
   * Remove all user lists irrelevant of creation date since that information is not exposed via
   * twitter/ twitter4j. Note: Not time aware.
   */
  private void removeLists() {
    try {
      ResponseList<UserList> lists = twitter.getUserLists(twitter.getScreenName());
      for (UserList list : lists) {
        twitter.destroyUserList(list.getId());
      }

    } catch (TwitterException e) {
      logger.error("Twitter exception occurred", e);
    }
  }
Beispiel #8
0
  /**
   * データストアに保存しておいたアクセストークンからTwitterインスタンスを生成する。
   *
   * @param botname
   * @return
   */
  public static Twitter getTwitter(User user) {

    if (user == null) {
      return null;
    }

    try {
      Twitter twitter =
          new TwitterFactory()
              .getInstance(new AccessToken(user.getAccessToken(), user.getAccessSecret()));
      twitter.getScreenName();
      return twitter;
    } catch (TwitterException e) {
      log.info("ユーザー情報の取得に失敗しました。ユーザー:[" + user.getScreenName() + "]");
      return null;
    }
  }
  public void searchUser() {

    List<Entity> users =
        DataFramework.getInstance()
            .getEntityList("users", "service is null or service = \"twitter.com\"");

    boolean timeline = preferences.getBoolean("prf_notif_in_timeline", false);
    boolean mentions = preferences.getBoolean("prf_notif_in_mentions", true);
    boolean dms = preferences.getBoolean("prf_notif_in_direct", true);

    for (int i = 0; i < users.size(); i++) {
      try {

        if (!PreferenceUtils.getStatusWorkApp(context)) {
          loadUser(users.get(i).getId());
          Log.d(Utils.TAG_ALARM, "Cargar en background usuario " + twitter.getScreenName());
        }

        UserNotifications userNotification = new UserNotifications();

        userNotification.setName(users.get(i).getString("name"));
        userNotification.setId(users.get(i).getId());

        // TIMELINE

        if (TweetTopicsUtils.hasColumn(users.get(i).getId(), TweetTopicsUtils.COLUMN_TIMELINE)) {
          EntityTweetUser etuTimeline =
              new EntityTweetUser(users.get(i).getId(), TweetTopicsUtils.TWEET_TYPE_TIMELINE);
          if (!PreferenceUtils.getStatusWorkApp(context)
              && type != OnAlarmReceiver.ALARM_ONLY_OTHERS) {
            InfoSaveTweets info = etuTimeline.saveTweets(context, twitter);
            if (info.getNewMessages() > 0 && timeline) {
              userNotification.setIdsTimeline(info.getIds());
            }
          }
          totalTimelineADW += etuTimeline.getValueNewCount();
        }

        // MENTIONS

        if (TweetTopicsUtils.hasColumn(users.get(i).getId(), TweetTopicsUtils.COLUMN_MENTIONS)) {
          EntityTweetUser etuMentions =
              new EntityTweetUser(users.get(i).getId(), TweetTopicsUtils.TWEET_TYPE_MENTIONS);
          if (!PreferenceUtils.getStatusWorkApp(context)
              && type != OnAlarmReceiver.ALARM_ONLY_TIMELINE) {
            InfoSaveTweets info = etuMentions.saveTweets(context, twitter);
            if (info.getNewMessages() > 0 && mentions) {
              userNotification.setIdsMentions(info.getIds());
            }
          }

          totalMentionsADW += etuMentions.getValueNewCount();
        }

        // DIRECTOS

        if (TweetTopicsUtils.hasColumn(
            users.get(i).getId(), TweetTopicsUtils.COLUMN_DIRECT_MESSAGES)) {
          EntityTweetUser etuDMs =
              new EntityTweetUser(users.get(i).getId(), TweetTopicsUtils.TWEET_TYPE_DIRECTMESSAGES);
          if (!PreferenceUtils.getStatusWorkApp(context)
              && type != OnAlarmReceiver.ALARM_ONLY_TIMELINE) {
            InfoSaveTweets info = etuDMs.saveTweets(context, twitter);
            if (info.getNewMessages() > 0 && dms) {
              userNotification.setIdsDMs(info.getIds());
            }
          }
          totalDMsAWD += etuDMs.getValueNewCount();
        }

        // DIRECTOS ENVIADOS

        if (!PreferenceUtils.getStatusWorkApp(context)
            && type != OnAlarmReceiver.ALARM_ONLY_TIMELINE) {
          EntityTweetUser etuSentDMs =
              new EntityTweetUser(
                  users.get(i).getId(), TweetTopicsUtils.TWEET_TYPE_SENT_DIRECTMESSAGES);
          etuSentDMs.saveTweets(context, twitter);
        }

        mUserNotifications.add(userNotification);

      } catch (Exception ex) {
        ex.printStackTrace();
      }
    }
  }