0

我在使用 twitter4j 时遇到问题,当我使用以下代码获取时间线时:

try {
    ResponseList<Status> tweets = twitter.getHomeTimeline();
    for(Status s : tweets){
        Tweet temp = new Tweet(new URL(s.getUser().getProfileImageURL()),s.getUser().getName(),"@"+s.getUser().getScreenName() , s.getText());
        tweetsPanel.add(temp);
    }
} catch (TwitterException | MalformedURLException e) {
    e.printStackTrace();
}

(Tweet 是本地类)除了时间轴中的转推显示为“Quote Retweet”外,一切正常:

RT @SOMEONE : the tweet.

我希望它像网站一样,只是普通的转发。

4

1 回答 1

0

在 twitter4j 上,转推以格式显示

转发@用户:推文

因为是 rt 在文本中采用的实际形式。如果你在 twitter 上发布一条具有相同格式的推文,它将被解析为来自 twitter 本身的正常转发。

您可以编辑它的唯一方法是解析文本并手动消除第一部分。尝试类似:

String tweetText = "";
String [] splitted=s.getText().split(":");
if(splitted.lenght>2)
for (int i=1;i<splitted.lenght-1;i++)
{
  tweetText+=splitted[i]+":";
}
tweetText+=splitted[splitted.lenght-1];
return tweetText;

通过在 i=1 上开始 for 您将避免添加包含 RT @user 的第一个拆分,通过添加 splitted[i]+":" 您将放回推文中存在的最终其他 ":" 否则拆分将排除。当然你不想引入一个不存在的“:”,所以最后一段 splitted 在 for 之外,没有 +“:”

于 2013-07-15T11:07:20.323 回答