1 package com.yuji.tdb;
\r
3 import java.io.IOException;
\r
4 import java.util.logging.Logger;
\r
6 import javax.servlet.http.HttpServlet;
\r
7 import javax.servlet.http.HttpServletRequest;
\r
8 import javax.servlet.http.HttpServletResponse;
\r
10 import twitter4j.Twitter;
\r
11 import twitter4j.TwitterException;
\r
12 import twitter4j.TwitterFactory;
\r
13 import twitter4j.auth.AccessToken;
\r
14 import twitter4j.auth.OAuthAuthorization;
\r
15 import twitter4j.auth.RequestToken;
\r
16 import twitter4j.conf.Configuration;
\r
17 import twitter4j.conf.ConfigurationBuilder;
\r
19 import com.yuji.tdb.common.CommonUtil;
\r
20 import com.yuji.tdb.db.KeyValueDao;
\r
21 import com.yuji.tdb.twitter.TwitterUtil;
\r
23 @SuppressWarnings("serial")
\r
24 public class TrainDelayBotServlet extends HttpServlet {
\r
25 private static final Logger log = Logger
\r
26 .getLogger(TrainDelayBotServlet.class.getName());
\r
27 // private static RequestToken requestToken = null;
\r
28 //private static AccessToken accessToken = null;
\r
29 // private static String consumerKey = null;
\r
30 // private static String consumerSecret = null;
\r
32 private KeyValueDao dao = KeyValueDao.getInstance();
\r
34 public void doGet(HttpServletRequest req, HttpServletResponse resp)
\r
35 throws IOException {
\r
39 resp.setContentType("text/plain");
\r
40 resp.getWriter().println("<h3>traindelaybot Hello, world</h3>");
\r
42 String parmConsumerKey = req.getParameter("key");
\r
43 String parmConsumerSecret = req.getParameter("secret");
\r
44 String parmResult = req.getParameter("result");
\r
45 if (!CommonUtil.isNull(parmConsumerKey)
\r
46 && !CommonUtil.isNull(parmConsumerSecret)) {
\r
47 setOAuthAuthorization(req, resp, parmConsumerKey,
\r
48 parmConsumerSecret);
\r
52 String consumerKey = dao.get(KeyValueDao.KEY_CONSUMER_KEY);
\r
53 String consumerSecret = dao.get(KeyValueDao.KEY_CONSUMER_SECRET);
\r
54 if (CommonUtil.isNull(consumerKey)
\r
55 || CommonUtil.isNull(consumerSecret)) {
\r
60 if (!CommonUtil.isNull(parmResult)) {
\r
61 String requestTokenKey = dao.get(KeyValueDao.KEY_REQUEST_TOKEN);
\r
62 String requestTokenSecret = dao
\r
63 .get(KeyValueDao.KEY_REQUEST_TOKEN_SECRET);
\r
65 if (CommonUtil.isNull(requestTokenKey)
\r
66 || CommonUtil.isNull(requestTokenSecret)) {
\r
70 RequestToken requestToken = new RequestToken(requestTokenKey,
\r
71 requestTokenSecret);
\r
72 resultOAuthAuthorization(consumerKey, consumerSecret,
\r
77 if (accessToken == null) {
\r
82 TwitterUtil util = TwitterUtil.getInstance();
\r
83 util.main(consumerKey, consumerSecret, accessToken);
\r
90 private void setOAuthAuthorization(HttpServletRequest req,
\r
91 HttpServletResponse resp, String parmConsumerKey,
\r
92 String parmConsumerSecret) {
\r
94 ConfigurationBuilder confBuilder = new ConfigurationBuilder();
\r
96 confBuilder.setDebugEnabled(true);
\r
97 confBuilder.setOAuthConsumerKey(parmConsumerKey);
\r
98 confBuilder.setOAuthConsumerSecret(parmConsumerSecret);
\r
99 Configuration conf = confBuilder.build();
\r
101 String url = req.getRequestURL().toString();
\r
103 OAuthAuthorization oauth = new OAuthAuthorization(conf);
\r
104 // Twitter
\82Ì
\94F
\8fØ
\89æ
\96Ê
\82©
\82ç
\82Ì
\96ß
\82è
\90æ
\82ð
\8ew
\92è
\82µ
\82Ü
\82·
\81B
\r
105 // AccessToken
\83R
\83\93\83g
\83\8d\81[
\83\89\82ð
\8ew
\92è
\82µ
\82Ü
\82·
\81B
\r
106 String callbackURL = url + "?result=yes";
\r
107 // RequestToken requestToken =
\r
108 // oauth.getOAuthRequestToken(callbackURL);
\r
109 RequestToken requestToken = oauth.getOAuthRequestToken(callbackURL);
\r
110 // RequestToken
\82ð
\83Z
\83b
\83V
\83\87\83\93\82É
\95Û
\91¶
\82µ
\82Ä
\82¨
\82«
\82Ü
\82·
\81B
\r
111 // sessionScope("RequestToken", requestToken);
\r
112 // Twitter
\82Ì
\94F
\8fØ
\89æ
\96Ê
\82Ö
\83\8a\83_
\83C
\83\8c\83N
\83g
\82µ
\82Ü
\82·
\81B
\r
114 // consumerKey = parmConsumerKey;
\r
115 // consumerSecret = parmConsumerSecret;
\r
116 dao.put(KeyValueDao.KEY_CONSUMER_KEY, parmConsumerKey);
\r
117 dao.put(KeyValueDao.KEY_CONSUMER_SECRET, parmConsumerSecret);
\r
118 dao.put(KeyValueDao.KEY_REQUEST_TOKEN, requestToken.getToken());
\r
119 dao.put(KeyValueDao.KEY_REQUEST_TOKEN_SECRET,
\r
120 requestToken.getTokenSecret());
\r
122 resp.sendRedirect(requestToken.getAuthenticationURL());
\r
123 } catch (TwitterException e) {
\r
124 // TODO Auto-generated catch block
\r
125 e.printStackTrace();
\r
126 log.severe(e.toString());
\r
127 } catch (IOException e) {
\r
128 // TODO Auto-generated catch block
\r
129 e.printStackTrace();
\r
130 log.severe(e.toString());
\r
134 private void resultOAuthAuthorization(String consumerKey,
\r
135 String consumerSecret, RequestToken requestToken) {
\r
137 // Twitter twitter = new TwitterFactory().getInstance();
\r
138 // String tokenKey = requestToken.getToken();
\r
139 // String tokenSecret = requestToken.getTokenSecret();
\r
141 ConfigurationBuilder confBuilder = new ConfigurationBuilder();
\r
142 confBuilder.setDebugEnabled(true).setOAuthConsumerKey(consumerKey)
\r
143 .setOAuthConsumerSecret(consumerSecret);
\r
144 TwitterFactory factory = new TwitterFactory(confBuilder.build());
\r
145 Twitter twitter = factory.getInstance();
\r
147 accessToken = twitter.getOAuthAccessToken(requestToken);
\r
148 } catch (TwitterException e) {
\r
149 // TODO Auto-generated catch block
\r
150 e.printStackTrace();
\r
151 log.severe(e.toString());
\r