/** * Verifica se o programa já tem acesso a conta do usuario, caso negativo redireciona para pagina, * que gera uma autorização. * * @throws TwitterException * @throws IllegalStateException */ @RequestMapping(value = "/verificaAcessoTwitter") public String verificaAcessoTwitter(ModelMap modelMap) throws IllegalStateException, TwitterException { Usuario usuarioAutorizado = usuarioService.getUsuarioByLogin( SecurityContextHolder.getContext().getAuthentication().getName()); Twitter twitter = null; RequestToken requestToken = null; if (usuarioAutorizado.getAutorizacaoTwitter() != null) { twitter = new TwitterFactory().getInstance(); twitter.setOAuthConsumer( "bVqAzGbuR5jsOTDstph9XB1dM", "vi9xVqIc1oMQAydQYIVgbo0GvO4XWwPjdhtJpjAUk6yv19vdDO"); AccessToken accessToken = new AccessToken( usuarioAutorizado.getAutorizacaoTwitter().getToken(), usuarioAutorizado.getAutorizacaoTwitter().getTokenSecret()); twitter.setOAuthAccessToken(accessToken); cadastroIdTwitterAmigos1E2Grau(usuarioAutorizado, twitter); return "redirect:/usuario/listar"; } try { twitter = new TwitterFactory().getInstance(); twitter.setOAuthConsumer( "bVqAzGbuR5jsOTDstph9XB1dM", "vi9xVqIc1oMQAydQYIVgbo0GvO4XWwPjdhtJpjAUk6yv19vdDO"); requestToken = twitter.getOAuthRequestToken(); } catch (TwitterException e) { // TODO Auto-generated catch block e.printStackTrace(); } // AccessToken accessToken = null; String url = requestToken.getAuthorizationURL(); // System.out.println(twitter.getId()); AutorizacaoTwitterRequest autorizacaoTwitterRequest = new AutorizacaoTwitterRequest(); autorizacaoTwitterRequest.setRequestToken(requestToken); autorizacaoTwitterRequest.setTwitter(twitter); autorizacaoTwitterRequestService.save(autorizacaoTwitterRequest); modelMap.addAttribute("url", url); modelMap.addAttribute("id", autorizacaoTwitterRequest.getId()); modelMap.addAttribute("pin", new Pin()); return "usuario/autorizacaoTwitter"; }
/** * Grava a autorização para o programa acessar a conta do twitter gerando um token, tokenSecret. */ @RequestMapping(value = "/{id}/autorizacaoTwitter") public String autorizacaoTwitter( @PathVariable("id") Integer id, @Valid Pin pin, ModelMap modelMap) { AutorizacaoTwitterRequest autorizacaoTwitterRequest = autorizacaoTwitterRequestService.find(AutorizacaoTwitterRequest.class, id); Usuario usuarioAutorizado = usuarioService.getUsuarioByLogin( SecurityContextHolder.getContext().getAuthentication().getName()); Twitter twitter = autorizacaoTwitterRequest.getTwitter(); RequestToken requestToken = autorizacaoTwitterRequest.getRequestToken(); AccessToken accessToken = null; try { if (pin.getPin().length() > 0) { System.out.println(pin.getPin()); accessToken = twitter.getOAuthAccessToken(requestToken, pin.getPin()); } else { accessToken = twitter.getOAuthAccessToken(); } } catch (TwitterException te) { if (401 == te.getStatusCode()) { System.out.println("Não foi possível obter o token de acesso." + te.getMessage()); } else { te.printStackTrace(); } } AutorizacaoTwitter autorizacaoTwitter = new AutorizacaoTwitter(); autorizacaoTwitter.setId((int) accessToken.getUserId()); autorizacaoTwitter.setToken(accessToken.getToken()); autorizacaoTwitter.setTokenSecret(accessToken.getTokenSecret()); autorizacaoTwitter.setUsuario(usuarioAutorizado); autorizacaoTwitterService.save(autorizacaoTwitter); usuarioAutorizado.setAutorizacaoTwitter(autorizacaoTwitter); usuarioService.update(usuarioAutorizado); autorizacaoTwitterRequestService.delete(autorizacaoTwitterRequest); modelMap.addAttribute("usuario", usuarioAutorizado); return "redirect:/usuario/listar"; }