gpt4 book ai didi

Facebook oauth 对话框显示 "An error occurred. Please try again later."

转载 作者:行者123 更新时间:2023-11-30 05:16:01 25 4
gpt4 key购买 nike

我从“Facebook for Websites”Facebook 开发者页面复制了下面的 HTML,并将 APPID 替换为我的应用程序 ID。我把这个页面放在我的开发网络服务器上。如果我导航到该页面,它会很好地呈现登录按钮。但是点击登录按钮,它会打开 Facebook 登录页面,显示“发生错误。请稍后再试。”

我一定是遗漏了一些基本的东西。有什么想法吗?

<html>
<head>
<title>My Facebook Login Page</title>
</head>
<body>
<div id="fb-root"></div>
<script>
window.fbAsyncInit = function() {
FB.init({
appId : 'APPID',
status : true,
cookie : true,
xfbml : true,
oauth : true // removed a comma after 'true' as it generates a script error
});
};
(function(d){
var js, id = 'facebook-jssdk'; if (d.getElementById(id)) {return;}
js = d.createElement('script'); js.id = id; js.async = true;
js.src = "//connect.facebook.net/en_US/all.js";
d.getElementsByTagName('head')[0].appendChild(js);
}(document));
</script>
<div class="fb-login-button">Login with Facebook</div>
</body>
</html>

进一步调查表明,它在 Chrome、Firefox 和 Safari 中工作正常,在 IE9 中失败。

这是它在 Chrome 中访问的 URL,它工作正常: https://www.facebook.com/login.php?api_key=255367907914&skip_api_login=1&display=popup&cancel_url=https%3A%2F%2Fs-static.ak.fbcdn.net%2Fconnect%2Fxd_proxy.php%3Fversion%3D3%26error_reason%3Duser_denied%26error%3Daccess_denied%26error_description%3DThe%2Buser%2Bdenied%2Byour%2Brequest.%23cb%3Df16c026dc%26origin%3Dhttp%253A%252F%252Fsami.test.eu%253A81%252Ff314f6d52%26relation%3Dopener%26transport%3Dpostmessage%26frame%3Df48d09da8&fbconnect=1&next=https%3A%2F%2Fwww.facebook.com%2Fdialog%2Fpermissions.request%3F_path%3Dpermissions.request%26app_id%3D255367907914%26redirect_uri%3Dhttps%253A%252F%252Fs-static.ak.fbcdn.net%252Fconnect%252Fxd_proxy.php%253Fversion%253D3%2523cb%253Df16c026dc%2526origin%253Dhttp%25253A%25252F%25252Fsami.test.eu%25253A81%25252Ff314f6d52%2526relation%253Dopener%2526transport%253Dpostmessage%2526frame%253Df48d09da8%26sdk%3Djoey%26display%3Dpopup%26response_type%3Dtoken%252Csigned_request%26domain%3Dsami.test.eu%26fbconnect%3D1%26from_login%3D1%26client_id%3D255367907914&rcount=1

这是导致错误的 IE9 中的 URL: https://www.facebook.com/dialog/oauth?api_key=255367907914&app_id=255367907914&client_id=255367907914&display=popup&domain=sami.test.eu&locale=en_US&origin=1&redirect_uri=https%3A%2F%2Fs-static.ak.fbcdn.net%2Fconnect%2Fxd_proxy.php%3Fversion%3D3%23cb%3Df14fd3a0495986%26origin%3Dhttp%253A%252F%252Fsami.test.eu%252Ff2d9bfc6aa24134%26relation%3Dopener%26transport%3Dflash%26frame%3Df2539c36bc13734&response_type=token%2Csigned_request&sdk=joey

最佳答案

我在有时间进行调试 session 后想通了。

我使用假域在本地开发我的应用程序。我将本地主机文件中的域映射到 127.0.0.1(我这样做的原因与本文无关)。

事实证明,当我导航到 Facebook 登录页面时,IE 将 URL 中的 127.0.0.1 作为返回 URL 传递给 facebook。 127.0.0.1 与我在 Facebook 中为我的应用程序配置的 URL 不匹配,因此登录页面显示“发生错误”消息(如果能收到正确的错误消息就好了)。

其他浏览器将我的假域作为返回 URL 发送,它们没有问题。

无论如何,我停止使用假域名并确保域名与 Facebook 中的配置完全匹配,现在问题消失了。

感谢大家的回复。 zerkms 的比较 URL 的建议最终导致了解决方案。

关于Facebook oauth 对话框显示 "An error occurred. Please try again later.",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9507632/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com