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

(ツイートはローカル クラスです) タイムラインのリツイートが "Quote Retweet" として表示される以外はすべて問題ありません。

RT @SOMEONE : the tweet.

ウェブサイトのように、通常のリツイートが欲しいです。

4

1 に答える 1

0

twitter4j では、リツイートは次の形式で表示されます

RT @user : ツイート

これは、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;

for を i=1 で開始することにより、RT @user を含む最初の分割を追加することを回避できます。splitted[i]+":" を追加することにより、分割がそうでないツイートに存在する最終的な他の「:」を元に戻します。排除。もちろん、そこになかった ":" を導入したくないので、splitted の最後の部分は、+":" なしで for の外に出ます。

于 2013-07-15T11:07:20.323 に答える