не получен токен доступа или слишком много перенаправлений - PullRequest
1 голос
/ 07 января 2012

В соответствии с этой страницей я устанавливаю URL для получения access_token. Ниже моя строка redirectUri и строка urlForAccessToken соответственно.

String redirectUri = "http://xxxx.mine.nu:8081/myfacebookapp/myfbapp";

String urlForAccessToken = "https://www.facebook.com/dialog/oauth?client_id="+apiKey+"&redirect_uri="+redirectUri+"&scope=email,read_stream";

URL моего сайта и домен приложения в Facebook (где мы устанавливаем основы приложений):

site URL: http://xxxx.mine.nu:8081/myfacebookapp/myfbapp
App domain: xxxx.mine.nu

Теперь проблема в том, что я делаю response.sendRedirect (urlForAccessToken); из сервлета я получаю ниже ошибку:

The web page at http://xxxx.mine.nu:8081/myfacebookapp/myfbapp?code=xxx#base_domain=xxxx.mine.nu
 has resulted in too many redirects. Clearing your cookies for this site
 or allowing third-party cookies may fix the problem. If not, it is possibly
 a server configuration issue and not a problem with your computer.

Я очистил куки, но безуспешно.

Может, кто-нибудь подскажет мне, что я делаю неправильно. Я просто пытаюсь получить токен доступа и хотел бы получить доступ к основным и расширенным данным пользователей Facebook.

Моя платформа - Java, и я использую restFB для связи с API графа.

ниже код моего сервлета:

public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{
    response.setContentType("text/html");
    PrintWriter out = response.getWriter();
    out.println("<br><h4>We are getting Facebook data</h4>");
    response.sendRedirect(urlForAccessToken);
    String access_token = (String)request.getParameter("access_token");
    out.println("<br>code: " + code);
    try{
        FacebookClient facebookClient = new DefaultFacebookClient(access_token);
        //user = facebookClient.fetchObject("xxxxxxxxxxxx", User.class);
        out.println("<br>User: " + user.getName());
    }catch(FacebookException e){
        e.printStackTrace();
    }
}

Ранний ответ приветствуется.

...