+package com.yuji.tdb;\r
+\r
+import java.io.IOException;\r
+\r
+import javax.servlet.http.HttpServlet;\r
+import javax.servlet.http.HttpServletRequest;\r
+import javax.servlet.http.HttpServletResponse;\r
+\r
+import twitter4j.Twitter;\r
+import twitter4j.TwitterException;\r
+import twitter4j.TwitterFactory;\r
+import twitter4j.auth.AccessToken;\r
+import twitter4j.auth.OAuthAuthorization;\r
+import twitter4j.auth.RequestToken;\r
+import twitter4j.conf.Configuration;\r
+import twitter4j.conf.ConfigurationBuilder;\r
+\r
+import com.yuji.tdb.common.CommonUtil;\r
+import com.yuji.tdb.twitter.TwitterUtil;\r
+\r
+@SuppressWarnings("serial")\r
+public class TrainDelayBotServlet extends HttpServlet {\r
+ private static RequestToken requestToken = null;\r
+ private static AccessToken accessToken = null;\r
+ private static String consumerKey = null;\r
+ private static String consumerSecret = null;\r
+\r
+ public void doGet(HttpServletRequest req, HttpServletResponse resp)\r
+ throws IOException {\r
+ resp.setContentType("text/plain");\r
+ resp.getWriter().println(" traindelaybot Hello, world");\r
+\r
+ String parmConsumerKey = req.getParameter("key");\r
+ String parmConsumerSecret = req.getParameter("secret");\r
+ String parmResult = req.getParameter("result");\r
+ if (!CommonUtil.isNull(parmConsumerKey)\r
+ && !CommonUtil.isNull(parmConsumerSecret)) {\r
+ setOAuthAuthorization(req, resp, parmConsumerKey, parmConsumerSecret);\r
+ return;\r
+ }\r
+\r
+ if (requestToken == null\r
+ || CommonUtil.isNull(consumerKey)\r
+ || CommonUtil.isNull(consumerSecret)) {\r
+ return;\r
+ }\r
+\r
+ if (!CommonUtil.isNull(parmResult)) {\r
+ resultOAuthAuthorization();\r
+ return;\r
+ }\r
+\r
+ // TODO null check\r
+ TwitterUtil util = TwitterUtil.getInstance();\r
+ util.main(consumerKey,\r
+ consumerSecret, accessToken);\r
+ }\r
+\r
+ private void setOAuthAuthorization(HttpServletRequest req,\r
+ HttpServletResponse resp, String pramConsumerKey, String consumerSecret) {\r
+ try {\r
+ ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
+\r
+ confBuilder.setDebugEnabled(true);\r
+ confBuilder.setOAuthConsumerKey(pramConsumerKey);\r
+ confBuilder.setOAuthConsumerSecret(consumerSecret);\r
+ Configuration conf = confBuilder.build();\r
+\r
+ String url = req.getRequestURL().toString();\r
+\r
+ OAuthAuthorization oauth = new OAuthAuthorization(conf);\r
+ // Twitter\82Ì\94F\8fØ\89æ\96Ê\82©\82ç\82Ì\96ß\82è\90æ\82ð\8ew\92è\82µ\82Ü\82·\81B\r
+ // AccessToken\83R\83\93\83g\83\8d\81[\83\89\82ð\8ew\92è\82µ\82Ü\82·\81B\r
+ String callbackURL = url + "?result=yes";\r
+ // RequestToken requestToken =\r
+ // oauth.getOAuthRequestToken(callbackURL);\r
+ requestToken = oauth.getOAuthRequestToken(callbackURL);\r
+ // RequestToken\82ð\83Z\83b\83V\83\87\83\93\82É\95Û\91¶\82µ\82Ä\82¨\82«\82Ü\82·\81B\r
+ // sessionScope("RequestToken", requestToken);\r
+ // Twitter\82Ì\94F\8fØ\89æ\96Ê\82Ö\83\8a\83_\83C\83\8c\83N\83g\82µ\82Ü\82·\81B\r
+\r
+ TrainDelayBotServlet.consumerKey = pramConsumerKey;\r
+ TrainDelayBotServlet.consumerSecret = consumerSecret;\r
+\r
+ resp.sendRedirect(requestToken.getAuthenticationURL());\r
+ } catch (TwitterException e) {\r
+ // TODO Auto-generated catch block\r
+ e.printStackTrace();\r
+ } catch (IOException e) {\r
+ // TODO Auto-generated catch block\r
+ e.printStackTrace();\r
+ }\r
+ }\r
+\r
+ private void resultOAuthAuthorization() {\r
+ try {\r
+ // Twitter twitter = new TwitterFactory().getInstance();\r
+ // String tokenKey = requestToken.getToken();\r
+ // String tokenSecret = requestToken.getTokenSecret();\r
+\r
+ ConfigurationBuilder confBuilder = new ConfigurationBuilder();\r
+ confBuilder.setDebugEnabled(true).setOAuthConsumerKey(consumerKey)\r
+ .setOAuthConsumerSecret(consumerSecret);\r
+ TwitterFactory factory = new TwitterFactory(confBuilder.build());\r
+ Twitter twitter = factory.getInstance();\r
+\r
+ accessToken = twitter.getOAuthAccessToken(requestToken);\r
+ } catch (TwitterException e) {\r
+ // TODO Auto-generated catch block\r
+ e.printStackTrace();\r
+ }\r
+ }\r
+}\r