如何使用Twitter4j api在推文上回复?

时间:2012-08-17 05:04:00

标签: android twitter4j

我在twitter上工作,我有访问令牌,我现在也收到推文我想在推特上回复,就像我们在Twitter网站上做的那样我使用下面的代码,但它不是回复推文但是它更新我的状态请帮我解决这个问题谢谢..

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
    }
}

3 个答案:

答案 0 :(得分:7)

我也有这个问题,然后我尝试在文本本身中使用处理程序。现在它似乎正在工作。

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);

答案 1 :(得分:0)

我没有足够的声誉发表评论所以我把它作为答案,因为我坚持了一段时间。 @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();

答案 2 :(得分:0)

您需要将用户名添加到响应中,在 Twitter4j 中,这称为 screenName

例如:

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

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