(1) TwitterのAPIでハッシュタグからツイートを探すJavaプログラムのご紹介
(1-1) プログラムの概要
(1-2) サンプルプログラム
(1-3) 操作イメージ
(1) JavaでTwitterのAPIの使い方入門
本記事はTwitterのAPIを使って、ハッシュタグに関連するツイートを検索するJavaプログラムをご紹介します。
(前提事項)
①TwitterAPIの利用申請が完了している
②Twitter4jのライブラリがサーバにある
③空の動的Webプロジェクトを作成しており、上記②のライブラリをビルドパスに含めている
もし上記の前提が未完了の場合は、先に「コチラの記事」をご覧下さい。
(1-1) プログラムの概要
まずはプログラムの全体像を簡単にご紹介します。ざっくり3つの部品があります。
①View1:検索画面
⇒ ハッシュタグを入力し、検索開始する画面
②View2:検索結果画面
⇒ 検索結果を表示する画面
③Controller:サーブレット
⇒ キー認証、ハッシュタグの検索実行、結果の格納
(図111)

(1-2) サンプルプログラム
上記3つの部品について、それぞれのサンプルプログラムをご紹介します。
①View1:TwitterToolHome.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" %>
<%@ page import="java.util.List" %>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<label>Enter the "Hash Tag" you want to search.</label>
<form action="./twitter" method="post">
#<input type="text" name="searchTarget" id="tweets">
<input type="submit" value="send">
</form>
</br>
</body>
</html>
②View2:TwitterToolResult.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page import="java.util.List" %>
<!DOCTYPE html>
<%
List<String> searchResult = (List<String>)request.getAttribute("result");
%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
for(int i=0; i<searchResult.size(); i++){ %>
<div class="resultOutput">
<%=searchResult.get(i) %>
</div>
<%}%>
</body>
<a href="TwitterToolHome.jsp">Back To Query Screen</a>
</html>
③Controller:TwitterServlet.java
import java.io.IOException;
import java.util.List;
import java.util.*;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import twitter4j.Query;
import twitter4j.QueryResult;
import twitter4j.Status;
import twitter4j.Twitter;
import twitter4j.TwitterException;
import twitter4j.TwitterFactory;
import twitter4j.conf.ConfigurationBuilder;
/**
* Servlet implementation class TwitterServlet
*/
@WebServlet("/twitter")
public class TwitterServlet extends HttpServlet {
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//####(1)変数定義など
//# エンコーディング方式の設定
request.setCharacterEncoding("UTF-8");
//# 検索対象キーワードの取得
String searchTarget = "#" + request.getParameter("searchTarget");
//# 遷移先画面
String forwardpage = "./TwitterToolResult.jsp";
//####(2)設定の取り込み (ConfigurationBuilderクラス)
//# インスタンス生成
ConfigurationBuilder cb = new ConfigurationBuilder();
//# キー情報の設定
cb.setDebugEnabled(true)
.setOAuthConsumerKey("[ご自身のOAuthConsumerKey]")
.setOAuthConsumerSecret("[ご自身のOAuthConsumerSecret]")
.setOAuthAccessToken("[ご自身のOAuthAccessToken]")
.setOAuthAccessTokenSecret("[ご自身のOAuthAccessTokenSecret]");
//####(3)各種Twitterインスタンスの生成
//# ファクトリクラスのインスタンス生成
TwitterFactory tf = new TwitterFactory(cb.build());
//# Twitterクラスのインスタンス生成
Twitter twitter = tf.getInstance();
//####(4)ハッシュタグによる検索
//# ハッシュタグの検索用クラス(Query)
Query query = new Query();
//# クエリ生成(検索対象のワードをセット)
query.setQuery(searchTarget);
//# 検索結果の格納用
QueryResult queryResult = null;
//# クエリの発行・結果格納
try {
queryResult = twitter.search(query);
} catch (TwitterException e1) {
e1.printStackTrace();
}
System.out.println("Hit Num:"+queryResult.getTweets().size());
//# 最終結果の格納用
List result = new ArrayList();
//# 検索結果から1Statusずつ、ツイート内容を最終結果に格納
for(Status tweet : queryResult.getTweets()) {
result.add(tweet.getText());
}
//####(5)結果格納・画面遷移
//# 結果をリクエストオブジェクトにセット
request.setAttribute("result",result);
//# 画面遷移
RequestDispatcher dispatch = request.getRequestDispatcher(forwardpage);
dispatch.forward(request, response);
//doGet(request, response);
}
}
(1-3) 操作イメージ
上記のサーブレット+JSP2個を実装すると次のように、画面からハッシュタグでツイートを検索できます。
①検索するハッシュタグの入力
検索したいハッシュタグをテキストボックスに入力します(#は含めない)。
(図131)

②検索の実行
ボタンを押して検索を開始します。
(図132)

③検索結果の確認
遷移した画面でハッシュタグに関連するツイートが表示されます。
(図133)

(操作動画)