Как использовать API Twitter4j для ответа на твит?

Я работаю над твиттером, у меня есть токен доступа, и теперь я также получаю твиты. Я хочу ответить на эти твиты, как мы это делали на веб-сайте Твиттера. статус пожалуйста, помогите мне решить эту проблему Спасибо ..

public void tweetReply() {
    try {
        // System.out.println("Post Id= " + itemsObj.postId);
        AccessToken a = new AccessToken(twittertokens[0], twittertokens[1]);
        Twitter twitter = new TwitterFactory().getInstance();

        twitter = new TwitterFactory().getInstance();
        twitter.setOAuthConsumer(Constants.CONSUMER_KEY, Constants.CONSUMER_SECRET);
        twitter.setOAuthAccessToken(a);
        Long id = new Long("236178766597087234");
        twitter.updateStatus(new StatusUpdate("@lalitrajput024  this is to test For reply option ").inReplyToStatusId(id));

    } catch (Exception e) {
        // TODO: handle exception
    }
}

person user1445057    schedule 17.08.2012    source источник
comment
я решил эту проблему при переполнении стека. Пожалуйста, перейдите по этой ссылке -a-authenticate-user-in" title="в android, как напрямую опубликовать твит следующим пользователям аутентифицированного пользователя в"> stackoverflow.com/questions/13134629/ Этот ответ по ссылке проверить! я надеюсь, что эта ссылка может помочь вам!   -  person Akash Singh    schedule 05.11.2012


Ответы (3)


У меня также была эта проблема, а затем я попытался использовать обработчик в самом тексте. Теперь он, похоже, работает.

public static void reply(long inReplyToStatusId,String text,double latitude,double longitude,TwitterFactory factory) throws TwitterException
{   AccessToken accessToken = loadAccessToken();
    Twitter twitter = factory.getInstance();
    twitter.setOAuthConsumer(consumerKey, consumerSecrate);
    twitter.setOAuthAccessToken(accessToken);


    StatusUpdate stat= new StatusUpdate(text);

    stat.setInReplyToStatusId(inReplyToStatusId);


    GeoLocation location= new GeoLocation(latitude, longitude);
    stat.setLocation(location);

    twitter.updateStatus(stat);
 }'

и я назвал это как

            reply(238912922250792960l, "@praveena_kd testing reply", 12.787, 77.7578, factory);
person praveena_kd    schedule 24.08.2012

У меня недостаточно репутации, чтобы комментировать, поэтому я поставил это как ответ, потому что некоторое время застрял на этом. Этот код, как указано @praveena_kd, работает.

String answer = "replying to @" + userNick + ": ...";
StatusUpdate statusReply = new StatusUpdate(answer);
  statusReply.setInReplyToStatusId(statusId);
  try {
    twitter.updateStatus(statusReply);
      } catch (TwitterException ex) {
      // handle exception
  }

Но вы должны позаботиться о том, чтобы поставить @UserScreenName в ответ, иначе он не появится на временной шкале отправителя! Где

String userNick = status.getUser().getScreenName();
person Sandor Mezil    schedule 20.02.2016

Вам нужно добавить имя пользователя в ответ, в Twitter4j это называется screenName

Например:

String username = status.getUser().getScreenName();

String answer = "@".concat(username).concat(" Here goes your response ");

person Juan Ramon Vargas    schedule 22.05.2021