我在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
}
}
答案 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 ");