TwitterAPI(Twitter4J)を利用してダイレクトメッセージに来た特定のコメントに対してリアルタイムで
応答できるプログラムを作ろうとしています。
Twitter4JのサンプルにあったプログラムPrintUserStreamを拡張して作成しようとしていますが、
かなり初歩的なところで躓いています。アドバイスいただけると助かります。
下のプログラムではonDirectMessage内でsendDirectMessageメソッドを呼び出そうとしていますが、
twitterオブジェクトが参照できずエラーになってしまいます。
代わりにcb2の認証定義をonDirectMessage内に宣言すると随時onDirectMessageイベントが発生するたび認証してしまいよろしくありません。
どのようなソースコードを書けば問題が解決されるでしょうか。
----------ソースサンプル----------------------------------------------
class PrintUserStream {
public static void main(String[] args) throws TwitterException {
ConfigurationBuilder cb = new ConfigurationBuilder();
cb.setDebugEnabled(true)
.setOAuthConsumerKey("xxx")
.setOAuthConsumerSecret("xxx")
.setOAuthAccessToken("xxx")
.setOAuthAccessTokenSecret("xxx");
ConfigurationBuilder cb2 = new ConfigurationBuilder();
cb2.setDebugEnabled(true)
.setOAuthConsumerKey("xxx")
.setOAuthConsumerSecret("xxx")
.setOAuthAccessToken("xxx")
.setOAuthAccessTokenSecret("xxx");
Twitter twitter = new TwitterFactory(cb2.build()).getInstance();
TwitterStream twitterStream = new TwitterStreamFactory(cb.build()).getInstance();
twitterStream.addListener(listener);
// user() method internally creates a thread which manipulates TwitterStream and calls these adequate listener methods continuously.
twitterStream.user();
}
public static UserStreamListener listener = new UserStreamListener() {
// private DirectMessagesResources twitter;
@Override
public void onStatus(Status status) {
System.out.println("onStatus @" + status.getUser().getScreenName() + " - " + status.getText());
}
@Override
public void onDirectMessage(DirectMessage directMessage) {
System.out.println("onDirectMessage text:"
+ directMessage.getText());
System.out.println(directMessage.getSenderId());
if(directMessage.getText().contains("xxx")){
System.out.println(directMessage.getText());
twitter.sendDirectMessage(ID, "コメント");
}
}
};
}
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
変数を動的に利用するには?
-
【java】同ディレクトリ別ファ...
-
randomで
-
JSPやサーブレットでSystem.out...
-
パソコンキーボードで時分秒を...
-
javaで質問です。 文字列2023/2...
-
Path型をString型へ変換する(Java)
-
VBAで配列の計算
-
C言語32bitから64bitの移行につ...
-
System.err. printlnとSystem.o...
-
「配列定数は、イニシャライザ...
-
動的配列が存在(要素が有る)か...
-
IF関数でEmpty値を設定する方法。
-
バイトスワップ
-
eclipseに記述したjavaファイル...
-
論理演算子”||”またはの入力方法
-
VBで作った乱数を一度も重複さ...
-
flush()とclose()について
-
動的配列確保
-
ORA-01858: 数値を指定する箇所...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
変数を動的に利用するには?
-
中カッコ{}だけの記述について
-
プログラミングの問題です。大...
-
NoSuchMethodErrorが解決できま...
-
Javaでlog4jを使ってログ出力を...
-
System.exit()の値を取得したい
-
コンストラクタの引数の中のnew?
-
Javaで日本語の出力が文字化けする
-
インタフェイス実装と抽象クラ...
-
randomで
-
Java プログラム public class ...
-
日本語が文字コードによっては...
-
Socketの接続のタイムアウトを...
-
GetterとSetterをやったのに。
-
javaで特定の文字列から特定の...
-
JSP/Servletのパラメータの受け...
-
(1)を表示するには
-
【初心者です】javaで平均値を...
-
javaのプログラミングで作るRPG...
-
【java】同ディレクトリ別ファ...
おすすめ情報