package com.twitter.acoes;
import java.util.Map;
import twitter4j.Twitter;
import twitter4j.TwitterException;
import twitter4j.TwitterFactory;
import twitter4j.auth.AccessToken;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
public class Sucesso extends ActionSupport{
private static final long serialVersionUID = 1L;
private String erro;
private String oauth_verifier;
public String execute() throws Exception {
try{
String consumerKey = "ZU3EOQpH5YR2SXoMmAGzw";
String secretKey = "oHIA2PoLw4Y8jXR4HM3xWfoJQJFYIryFKStHuRcL7Q";
//cria uma instancia do twitter pela 'fabrica'
Twitter twitter = new TwitterFactory().getInstance();
twitter.setOAuthConsumer(consumerKey, secretKey);
//recuperando os tokens da sessao
String token = (String) ActionContext.getContext().getSession().get("token");
String tokenSecret = (String) ActionContext.getContext().getSession().get("tokenSecret");
try{
//tenta conseguir um accessToken atrav�s dos requestTokens para tentar liberar o acesso ao twitter
AccessToken accessToken = twitter.getOAuthAccessToken(token, tokenSecret);
//salva o accessToken na sessao pra nao precisar autenticar cada vez que for postar um tweet
//Para isto, deveria ser feita uma verifica��o mas creio que foge do intuito deste programa
Map<String,Object> session = ActionContext.getContext().getSession();
session.put("aToken",accessToken.getToken());
session.put("aTokenSecret",accessToken.getTokenSecret());
//supostamente esta linha conseguiria a autorizacao pra acessar o twitter
//mas por algum motivo que eu nao sei qual �, o twitter nao autoriza minha aplica��o e retorna ERRO1
twitter.setOAuthAccessToken(accessToken);
}catch(TwitterException ex){
return "ERROR1";
}
//verifica se o usuario digitou ou nao um twitter e se sim, recupera esta informa��o da sessao
if(!((String)ActionContext.getContext().getSession().get("twt")).equals("")){
String twt = (String)ActionContext.getContext().getSession().get("twt");
//configuro a mensagem que seria enviada ao twitter
String novoStatus = "@[" + twt + "] acabou de se cadastrar no site [http://stechtwitter.appspot.com/]";
//envio o twitter
twitter.updateStatus(novoStatus);
//se o usuario nao digitou um twitter, recupera o nome dele da sessao
}else{
String nome = (String)ActionContext.getContext().getSession().get("nome");
//configuro a mensagem que seria enviada ao twitter com o nome do usuario
String novoStatus = "[" + nome + "] acabou de se cadastrar no site [http://stechtwitter.appspot.com/]";
//envio o twitter
twitter.updateStatus(novoStatus);
}
} catch (TwitterException ex) {
return "ERROR";
}
return SUCCESS;
}
public String getErro() {
return erro;
}
public void setErro(String erro) {
this.erro = erro;
}
public String getOauth_verifier() {
return oauth_verifier;
}
public void setOauth_verifier(String oauth_verifier) {
this.oauth_verifier = oauth_verifier;
}
}