我正在尝试将我的用户重定向到Facebook的“权限请求”页面,方法是将其重定向到
https://graph.facebook.com/oauth/authorize?client_id={client_id}&redirect_uri={redirect_uri}&scope={permission_scope}
当我直接在浏览器中输入Url时,它会显示在右侧页面上:会出现一个对话框,询问用户是否接受授予我的应用程序权限。
但是当我通过服务器发送重定向请求时:
response.sendRedirect("https://graph.facebook.com/oauth/authorize?client_id={client_id}&redirect_uri={redirect_uri}&scope={permission_scope}");
它将用户发送到带有大Facebook徽标的页面。如果用户点击徽标,它将正常显示授权页面。
我想知道在我的回复中是否遗漏了一两件事,这使得直接在浏览器中输入结果有所不同。有没有人有同样的问题?
答案 0 :(得分:2)
这是因为您不能拥有包含Facebook域名页面的应用程序iFrame(在apps.facebook.com上)。
您需要使用JavaScript进行重定向:
response.getWriter().println(
"<script>" +
"top.location.href = \"https://graph.facebook.com/oauth/authorize?client_id={client_id}&redirect_uri={redirect_uri}&scope={permission_scope}\"" +
"</script>"
);