Quantcast
Channel: 質問!ITmedia 新着質問(Java/253)
Viewing all articles
Browse latest Browse all 2439

TwitterのDMで自動応答プログラム

$
0
0
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, "コメント"); } } }; }

Viewing all articles
Browse latest Browse all 2439

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>