I was stuck in a problem that how to re use access token, once user has authenticated by Twitter (on call back URL). I got it working. There was problem in my understanding about request token vs access token. When user first time comes on call backed URL. I take request token and token secret from session and prepare the access token. Here the place where I was confused.
Now if user presses the refresh button or you want to get user information again from twitter any where in your application. You need to use the access token and this method twitter.setOAuthAccessToken(String1, String2). Because user has already been authenticated by Twitter. You can save this information in session.
HttpSession session = request.getSession();
twitter.setOAuthConsumer(Constants.CONSUMER_KEY,Constants.CONSUMER_SECRET);
if (session.getAttribute("aToken") == null){
// request token
String token = (String) session.getAttribute("token");
String tokenSecret = (String)session.getAttribute("tokenSecret");
AccessToken accessToken =
twitter.getOAuthAccessToken(token, tokenSecret);
twitter.setOAuthAccessToken(accessToken);
// save the access token, that are different from request token
session.setAttribute("aToken", accessToken.getToken());
session.setAttribute("aTokenSecret", accessToken.getTokenSecret());
}else{
// use the access token to authenticate user whenever you want
twitter.setOAuthAccessToken((String)session.getAttribute("aToken"),
(String)session.getAttribute("aTokenSecret"));
}
User user = twitter.verifyCredentials();
If you are also developing some app by using Twitter4J API on Google App Engine. Please give feedback on it.
Twitter4J Quick Tutorial: A quick tutorial on how to develop Twitter app by using Twitter4J on Google App Engine.