Javascript Facebook connect集成不再起作用
我成功地将FBConnect集成到我的应用程序中。连接和注册页面工作正常 但从一段时间以来,当我点击facebook按钮时,我绑定的事件不再出现Javascript Facebook connect集成不再起作用,javascript,facebook,Javascript,Facebook,我成功地将FBConnect集成到我的应用程序中。连接和注册页面工作正常 但从一段时间以来,当我点击facebook按钮时,我绑定的事件不再出现 <script src="http://connect.facebook.net/fr_FR/all.js" ></script> <script type="text/javascript"> //console integration if(typeof console !== 'object') console
<script src="http://connect.facebook.net/fr_FR/all.js" ></script>
<script type="text/javascript">
//console integration
if(typeof console !== 'object')
console = {};
if((typeof console.debug) !== 'function'){
if(typeof opera === 'object'){
console = {
debug : function(){return opera.postError(arguments);},
info : function(){this.debug('[INFO] ',arguments);},
log : function(){this.debug('[LOG] ',arguments);}
};
}
else{
console = {
debug : function(){return true;},
info : function(){return true;},
log : function(){return true;}
};
}
}
/**
* Fonction called to init and manage FB Connection
*/
handleFacebook();
$('#fb-button').click(function(){
alert('ok');
fbGetLoginStatus();
});
/**
*
*/
function handleFacebook() {
if(!window.fbApiInit) {
FB.init({appId: 'myAppId', xfbml: true, cookie: true});
fbApiInit = true;
}
}
function fbGetLoginStatus() {
FB.getLoginStatus(function(response) {
onStatus(response); // once on page load
FB.Event.subscribe('auth.statusChange', onStatus); // every status change
});
}
/**
* This will be called once on page load, and every time the status changes.
*/
function onStatus(response) {
console.info('onStatus', response);
if (response.status == 'connected') {
console.info('User logged in');
if (response.perms) {
console.info('User granted permissions');
}else{
console.info('User has not granted permissions');
}
getAccountInfo();
} else {
console.info('User is logged out');
}
}
/**
* This assumes the user is logged out, and renders a login button.
*/
function showLoginButton() {
var button = '<fb:login-button perms="email" />';
$('#fb-login-button').html(button);
FB.XFBML.parse(document.getElementById('fb-login-button'));
}
function getAccountInfo() {
FB.api(
{
method: 'fql.query',
query: 'SELECT username, first_name, last_name, uid, email, sex FROM user WHERE uid='+FB.getUserID()
},
function(response) {
console.info('API Callback', response);
var user = response[0];
$('#usernamefb').val(user.username);
$('#mailfb').val(user.email);
$('#facebook-connect-form').submit();
}
);
}
</script>
<div id="fb-login-button">
<fb:login-button perms="email" id="fb-button" />
</div>
<form method="post" action="/facebook-connect" id="facebook-connect-form">
<input type="hidden" id="usernamefb" name="usernamefb"/>
<input type="hidden" id="mailfb" name="mailfb"/>
</form>
我注意到,$'fb-button'.click事件中的警报函数从未被调用。
这里没有显示,但我在文件中包含了jQuery库upper。
有什么想法吗
谢谢你的回答。Facebook更改了按钮,我没有找到在更改后将点击事件绑定到该按钮的方法 我更改了我的网站,以便在加载时订阅FB活动。 初始化FB时,必须将选项状态设置为false,以防止在init上进行自动登录状态检查
function fbInit() {
window.fbAsyncInit = function () {
FB.init({
appId: 'XXX',
status: false,
cookie: true,
xfbml: true
});
//auth.statusChange
FB.Event.subscribe('auth.authResponseChange', function (response) {
if (response.status.indexOf('connected') != -1) {
// the user is logged in and has authenticated your
// app, and response.authResponse supplies
// the user's ID, a valid access token, a signed
// request, and the time the access token
// and signed request each expire
var uid = response.authResponse.userID;
var accessToken = response.authResponse.accessToken;
//Handle the access token
jQuery.ajax({
url: 'token_handler.ashx',
type: 'POST',
data: "accessToken=" + accessToken,
success: function (msg) {
}
});
} else if (response.status.indexOf('not_authorized') != -1) {
// the user is logged in to Facebook,
// but has not authenticated your app
} else {
// the user isn't logged in to Facebook.
}
});
};
(function (d) {
var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0];
if (d.getElementById(id)) { return; }
js = d.createElement('script'); js.id = id; js.async = true;
js.src = "//connect.facebook.net/en_US/all.js";
ref.parentNode.insertBefore(js, ref);
} (document));
}