Facebook 登录按钮不会调用回调函数
Facebook log in button will not call callback function
我不确定我是否理解应该如何完成。
首先是FB
按钮,它出现在屏幕上,带我到FB登录页面确认。
即使这个按钮 没有 onclick
无论如何它都会让我登录 window,但我添加了 onclick
并定义一个函数:
<div onclick="login();" class="fb-login-button" data-width="300" data-size="large" data-button-type="continue_with" data-auto-logout-link="false" data-use-continue-as="false" ></div>
该函数在 js
文件中并且是 :
function login()
{
console.log("connecting....");
FB.login(function(response) {
if (response.status === 'connected') {
console.log("connected");
testAPI();
} else {
console.log("not connected");
}
});
}
什么都不会打印,即使我点击 FB 按钮,甚至当我成功登录时,也不会打印 "connecting..."。
没有错误。
应该怎么做?
我想登录他,调用一个批准他所在的函数,并提取他的详细信息。
使用代码内联是不好的做法,您需要为 div 分配一个 ID 或 Class 并针对它调用函数,例如:
<div class="test">Click me!</div>
$('div.test').click(function(){
login();
});
希望对您有所帮助。
您混合了两个不同的概念,您可以使用官方登录按钮或使用 JavaScript SDK 的 FB.login
。登录按钮只需要 "onlogin" 并自动为您处理其他一切,如您在文档中所见:https://developers.facebook.com/docs/facebook-login/web/login-button/
如果您想使用 FB.login
,请改用随机 div(或任何 HTML 标签):
document.getElementById('loginBtn').addEventListener('click', () => {
FB.login((response) => {
if (response.authResponse) {
//user just authorized your app
document.getElementById('loginBtn').style.display = 'none';
}
}, {scope: 'email,public_profile'});
}, false);
更多信息:https://www.devils-heaven.com/facebook-javascript-sdk-login/
我不确定我是否理解应该如何完成。
首先是FB
按钮,它出现在屏幕上,带我到FB登录页面确认。
即使这个按钮 没有 onclick
无论如何它都会让我登录 window,但我添加了 onclick
并定义一个函数:
<div onclick="login();" class="fb-login-button" data-width="300" data-size="large" data-button-type="continue_with" data-auto-logout-link="false" data-use-continue-as="false" ></div>
该函数在 js
文件中并且是 :
function login()
{
console.log("connecting....");
FB.login(function(response) {
if (response.status === 'connected') {
console.log("connected");
testAPI();
} else {
console.log("not connected");
}
});
}
什么都不会打印,即使我点击 FB 按钮,甚至当我成功登录时,也不会打印 "connecting..."。 没有错误。
应该怎么做? 我想登录他,调用一个批准他所在的函数,并提取他的详细信息。
使用代码内联是不好的做法,您需要为 div 分配一个 ID 或 Class 并针对它调用函数,例如:
<div class="test">Click me!</div>
$('div.test').click(function(){
login();
});
希望对您有所帮助。
您混合了两个不同的概念,您可以使用官方登录按钮或使用 JavaScript SDK 的 FB.login
。登录按钮只需要 "onlogin" 并自动为您处理其他一切,如您在文档中所见:https://developers.facebook.com/docs/facebook-login/web/login-button/
如果您想使用 FB.login
,请改用随机 div(或任何 HTML 标签):
document.getElementById('loginBtn').addEventListener('click', () => {
FB.login((response) => {
if (response.authResponse) {
//user just authorized your app
document.getElementById('loginBtn').style.display = 'none';
}
}, {scope: 'email,public_profile'});
}, false);
更多信息:https://www.devils-heaven.com/facebook-javascript-sdk-login/