我正在使用登录按钮进行共享。按钮和共享功能适用于除MS Edge之外的所有浏览器。它曾经在Edge 25上工作(我目前在Edge 38上)。
问题是,当我点击登录按钮时,会出现一个登录弹出窗口,我可以在其中输入我的凭据。一旦输入它们并且我尝试登录,弹出窗口就不会关闭并重定向到这个地址:
https://www.facebook.com/v2.1/dialog/oauth?app_id=141515299765971&auth_type=&channel_url=http%3A%2F%2Fstaticxx.facebook.com%2Fconnect%2Fxd_arbiter%2Fr%2FlY4eZXm_YWu.js%3Fversion%3D42%23cb%3Df2de29c1e9204f4%26domain%3Dikeabuilds.sandbox3.2020.net%26origin%3Dhttp%253A%252F%252Fikeabuilds.sandbox3.2020.net%252Ff1deb23126bcc0c%26relation%3Dopener&client_id=141515299765971&display=popup&domain=ikeabuilds.sandbox3.2020.net&e2e=%7B%7D&locale=en_US&logger_id=80452c59-88a0-7681-0f2c-ac690c1d62b8&origin=1&redirect_uri=http%3A%2F%2Fstaticxx.facebook.com%2Fconnect%2Fxd_arbiter%2Fr%2FlY4eZXm_YWu.js%3Fversion%3D42%23cb%3Df1aa391653df35c%26domain%3Dikeabuilds.sandbox3.2020.net%26origin%3Dhttp%253A%252F%252Fikeabuilds.sandbox3.2020.net%252Ff1deb23126bcc0c%26relation%3Dopener%26frame%3Df7b23e2a9aa328&ref=LoginButton&response_type=none%2Ctoken%2Csigned_request&scope=publish_actions&sdk=joey&seen_revocable_perms_nux=false&version=v2.1
我也不被视为已登录。我在网上搜索了很多,甚至阅读了有关登录按钮的文档,除了只有一个解决方法之外没有找到任何东西。它包括将facebook url添加到windows的Internet选项中的可信站点。它不是一个可行的解决方案,因此对我来说不是一个解决方案。图像是facebook登录html页面的代码,空白重定向页面和包含登录按钮的页面。我还有一个 .js 页面,其中包含所有与Facebook相关的功能,但不适合一张图片,如果需要,我会提供。发生了什么事?
Facebook登录按钮 :
重定向链接 :
包含facebook登录按钮的页面的HTML代码 :
答案 0 :(得分:3)
根据我的测试结果,我能够重现您的问题,但我不确定您的情况是否属实。
当MS Edge或IE 阻止弹出窗口并且用户选择" 允许一次"时会发生同样的问题弹出窗口,当弹出窗口尝试重定向时,您将获得空白页面(已被阻止)。
如果您选择" 始终允许",则弹出窗口会重定向并正确关闭。
你可以做些什么来克服这个问题,实际上是启用
因此,首先启用登录重定向:
然后执行:
FB.init({
appId : 'APP_ID',
autoLogAppEvents : true,
cookie : true, // <-- use this
xfbml : true,
version : 'v3.0'
});
var uri = encodeURI('http://test.gr');
FB.getLoginStatus(function(response) {
if (response.status === 'connected') {
console.log(response.status); // should log connected.
} else {
window.location = 'https://www.facebook.com/v3.0/dialog/oauth?client_id=APP_ID&redirect_uri='+encodeURI(uri)+'&display=popup&scope=user_status&response_type=token&version=v3.0';
}
});
替换&#34; test.gr&#34;和&#34; APP_ID&#34;使用您的域名和应用ID。
重定向回您的网站后,系统会为您的网址添加名称为 fbm_ {APP_ID} 的Cookie,以便用户登录。
参考
答案 1 :(得分:0)
我认为您必须将javascript SDK保留为名为manual login flow的更具可自定义性的解决方案。
您可以像这样编写自定义按钮,而不是使用fb:login-button
:
<a href="https://www.facebook.com/v3.0/dialog/oauth?client_id={app-id}&redirect_uri={redirect-uri}&state={state-param}">Log-in to my app</a>
并使用您可以使用自定义代码处理的应用的html页面的网址自定义redirect_uri
参数,例如感谢消息和window.close()超时。