根据此页面,我正在设置获取 access_token 的 url。下面分别是我的 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";
我在 facebook 中的网站 URL 和应用程序域(我们设置应用程序的基础)是:
site URL: http://xxxx.mine.nu:8081/myfacebookapp/myfbapp
App domain: xxxx.mine.nu
现在,问题是当我在做一个 response.sendRedirect(urlForAccessToken); 从 servlet 我得到以下错误:
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.
我清除了cookies,但没有成功。
有人会指导我做错了什么。我只是想获取访问令牌,并想访问 facebook 用户的基本数据和扩展数据。
我的平台是 Java,我正在使用 restFB 与图形 API 进行通信。
下面是我的servlet代码:
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();
}
}
早期响应表示赞赏。