特定のワードを含むツイートの取得

307 views
Skip to first unread message

ふじー

unread,
Apr 5, 2015, 11:52:30 AM4/5/15
to twitt...@googlegroups.com
Andoridアプリ内で、特定のワードを含むツイートの取得をするプログラムを書きたいです。

import twitter4j.Query;
import twitter4j.QueryResult;
import twitter4j.Tweet;
import twitter4j.Twitter;
import twitter4j.TwitterException;
import twitter4j.TwitterFactory;

public class SimpleSearch {

public static void main(String[] args) throws TwitterException {

// 初期化
Twitter twitter = new TwitterFactory().getInstance();
Query query = new Query();

// 検索ワードをセット(試しにバルスを検索)
query.setQuery("バルス");

// 検索実行
QueryResult result = twitter.search(query);

System.out.println("ヒット数 : " + result.getTweets().size());

// 検索結果を見てみる
for (Tweet tweet : result.getTweets()) {
// 本文
System.out.println(tweet.getText());
// 発言したユーザ
System.out.println(tweet.getFromUser());
// 発言した日時
System.out.println(tweet.getCreatedAt());
// 他、取れる値はJavaDoc参照
}

}

}


というサンプルを見つけたのですが、[https://github.com/mwsoft/sample/blob/master/twitte4j-sample/src/main/java/jp/mwsoft/sample/twitter4j/SimpleSearch.java] twitter4jのバージョンが違うため、import twitter4j.Tweet;でエラーが発生します。どのようにすればよいですか。

Yamamoto Yusuke

unread,
Apr 5, 2015, 11:55:52 AM4/5/15
to twitt...@googlegroups.com
Tweetというインターフェースを使っているサンプルプログラムはバージョン2.2.xまたはそれ以前のものです。
バージョン3.0よりStatusというインターフェースになりましたので読み替えてください
http://twitter4j.org/ja/versions.html#migration22x-30x

--
山本 裕介
@yusuke
http://samuraism.jp/
> --
> Twitter4J の最新情報をフォロー: http://twitter.com/t4j_news
> 現在のバージョン - 安定: 4.0.1, 開発中: 4.0.2-SNAPSHOT
> バグトラッキング: http://issue.twitter4j.org/youtrack/issues/TFJ
>
> このメールは次の Google グループの参加者に送られています: Twitter4J J
> このグループにメールで投稿: twitt...@googlegroups.com
> このグループから退会する: http://groups.google.com/group/twitter4j-j?hl=ja
> ---
> このメールは Google グループのグループ「Twitter4J J」に登録しているユーザーに送られています。
> このグループから退会し、グループからのメールの配信を停止するには twitter4j-j...@googlegroups.com にメールを送信してください。
> その他のオプションについては https://groups.google.com/d/optout にアクセスしてください。

ふじー

unread,
Apr 6, 2015, 1:54:28 PM4/6/15
to twitt...@googlegroups.com
回答ありがとうございます。
Twitter4Jのサイトを見たのですが、どうしたらよいのか分かりませんでした。

getText.getFromUser.getCreatedAtでエラーが出てしまいます。

Yamamoto Yusuke

unread,
Apr 6, 2015, 7:51:47 PM4/6/15
to twitt...@googlegroups.com
どんなエラーが出ていますか?

--
山本 裕介
@yusuke
http://samuraism.jp/

> On Apr 7, 2015, at 02:54, ふじー <f.hiro....@gmail.com> wrote:
>
> 回答ありがとうございます。
> Twitter4Jのサイトを見たのですが、どうしたらよいのか分かりませんでした。
>
> getText.getFromUser.getCreatedAtでエラーが出てしまいます。

ふじー

unread,
Apr 7, 2015, 11:11:29 AM4/7/15
to twitt...@googlegroups.com
それぞれ
getText・・・Cannot resolve method getText().
getFromUser・・・Cannot resolve method getFromUser().
getCreatedAt・・・Cannot resolve method getCreatedAt().
というエラーが出ます。(importし忘れがあるのでしょうか)

for (Tweet tweet : result.getTweets()) { の行TweetにもCannot resolve method Tweetとエラーが出ます。

Yamamoto Yusuke

unread,
Apr 7, 2015, 11:14:28 AM4/7/15
to twitt...@googlegroups.com
まずTweetはバージョン3.0よりStatusというインターフェースになりましたのでStatusと置き換えてください。

> getText・・・Cannot resolve method getText().
> getFromUser・・・Cannot resolve method getFromUser().
> getCreatedAt・・・Cannot resolve method getCreatedAt().
Statusと置き換えればコンパイルエラーは直るかもしれません。
直らない場合はコードを貼り付けてください。
--
山本 裕介
@yusuke
http://samuraism.jp/

ふじー

unread,
Apr 7, 2015, 11:26:21 AM4/7/15
to twitt...@googlegroups.com
置き換えたところ、getFromUser以外は直りました。


        // 初期化
                Twitter twitter = new TwitterFactory().getInstance();
                Query query = new Query();

                // 検索ワードをセット
                query.setQuery("ついったー");

                // 検索実行
                QueryResult result = twitter.search(query);

                System.out.println("ヒット数 : " + result.getTweets().size());

                // 検索結果を見てみる
                for (Status tweet : result.getTweets()) {
                    // 本文
                    System.out.println(tweet.getText());
                    // 発言したユーザ
                    System.out.println(tweet.getFromUser());
                    // 発言した日時
                    System.out.println(tweet.getCreatedAt());
                }



2015年4月8日水曜日 0時14分28秒 UTC+9 yus...@mac.com:

Yamamoto Yusuke

unread,
Apr 7, 2015, 11:28:50 AM4/7/15
to twitt...@googlegroups.com
Statusインターフェースに変わったので、getUser()メソッドに書き換えてみてください
http://twitter4j.org/javadoc/twitter4j/Status.html#getUser()

--
山本 裕介
@yusuke
http://samuraism.jp/

ふじー

unread,
Apr 7, 2015, 11:34:25 AM4/7/15
to twitt...@googlegroups.com
ありがとうございます。
コンパイルエラーは無くなりました。
初心者で質問ばかりで申し訳ございませんでした。

Yamamoto Yusuke

unread,
Apr 7, 2015, 12:05:53 PM4/7/15
to twitt...@googlegroups.com
おめでとうございます!

動作面でも不明な点ございましたらお気軽にどうぞ!
--
山本 裕介
@yusuke
http://samuraism.jp/

> On Apr 8, 2015, at 00:34, ふじー <f.hiro....@gmail.com> wrote:
>
> ありがとうございます。
> コンパイルエラーは無くなりました。
> 初心者で質問ばかりで申し訳ございませんでした。
Reply all
Reply to author
Forward
0 new messages