Bom dia senhore,
estou brincando com a API spring social fazendo uma integração com o facebook. Para isso criei um projeto web bem simples com servlet para testar a autentificação.
Durante o processo de autentificação, envio uma requisição para o facebook, e ele me retorna em uma url de retorno pré cadastrada, inserindo o parâmetro access_token.
Minha dificuldade é: não consigo pegar a url de retorno com o parâmetro
Veja como envio a requisição para o facebook:
public void autenticarSpringComFacebook(HttpServletResponse response) throws IOException {
FacebookConnectionFactory connectionFactory = new FacebookConnectionFactory("XXXXXXX", "YYYYYY");
OAuth2Operations oauthOperations = connectionFactory.getOAuthOperations();
OAuth2Parameters params = new OAuth2Parameters();
//params.setScope("user_about_me,user_birthday,user_likes,user_status,publish_stream");
params.setRedirectUri("http://localhost:8080/TesteFaceWeb/loginAuthenticate");
String authorizeUrl = oauthOperations.buildAuthorizeUrl(GrantType.IMPLICIT_GRANT, params);
response.sendRedirect(authorizeUrl);
}
No response.sendRedirect(authorizeUrl); envio a requisição e sou redirecionado segundo a url de retorno “http://localhost:8080/TesteFaceWeb/loginAuthenticate”, para tratar o retorno
recebo em um outro servlet:
[code]
public class loginAuthenticate extends HttpServlet{
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException {
System.out.println("Iniciando");
//Imprimindo no prompt os parametros retornados
Enumeration e = request.getParameterNames();
PrintWriter out2 = response.getWriter ();
while (e.hasMoreElements()) {
String name = (String)e.nextElement();
String value = request.getParameter(name);
System.out.println(name + " = " + value);
}
response.setContentType("text/html");
PrintWriter out = response.getWriter();
// Agora vamos escrever o conteudo da pagina
out.println("<HTML>");
out.println("<BODY>");
out.println("<H1>Retornou!!!</h1>");
out.println("</body>");
out.println("</html>");
}
}[/code]
Neste servlet imprimo no prompt os parâmetros que estou recebendo no retorno, porém não há parâmetros nos prints .
Os fatos são que,
* realmente o retorno acontece, porque a execução passa pelo servlet que trata o retorno
* Não há parametros no retorno
* e o mais incrível: no browser, ao executar o teste, a url aparece no navegar perfeita mostrando inclusivel o parametro access_token.
Como faço para recuperar essa url que aparece para o usuário no browser?
Obrigado!