FB.getLoginStatus在第二次点击时响应(response.status = connected)
我想将我的帖子分享到Facebook,所以我写了代码。但是当我点击我的按钮时,FB.getLoginStatus第一次响应“未知”给response.status,但是如果我再次点击,则响应“已连接”。 这里是我的代码:FB.getLoginStatus在第二次点击时响应(response.status = connected)
$("#fb_share").on("click",function(){
var poi_id = $("#fb_share").attr('data-id');
FB.getLoginStatus(function(statusResp) {
console.log(statusResp);
if (statusResp.status === 'connected') {
FB.api('/me?fields=email', function(response) {
if(response.email){
sendEventInvite(statusResp,response,poi_id);
}else{
FBLoginFirst(poi_id,statusResp,"detail");
}
});
}else{
console.log("fb_permission_scope---"+fb_permission_scope);
FBLoginFirst();
}
});
});
这就是我的console.log得到
Object { status="unknown", authResponse=null}
这是我得到的第二次点击
Object { status="connected", authResponse={...}}`
您有一个额外的等号(=)在你的if语句中。将某些事物与布尔值进行比较时,三个等号(===)是正确的操作符。
尝试这样的:
$("#fb_share").on("click",function(){
var poi_id = $("#fb_share").attr('data-id');
FB.getLoginStatus(function(statusResp) {
console.log(statusResp);
if (statusResp.status == 'connected') {
FB.api('/me?fields=email', function(response) {
if(response.email){
sendEventInvite(statusResp,response,poi_id);
}else{
FBLoginFirst(poi_id,statusResp,"detail");
}
});
}else{
console.log("fb_permission_scope---"+fb_permission_scope);
FBLoginFirst();
}
});
});
!感谢您的响应,但FB.getLoginStatus上的第三行出现错误。它在第一次尝试时没有返回值,但在第二次响应时,一切正常。 –
'==='用于严格的相等性检查,不直接检查布尔值。它会停止浏览器尝试强制操作员两侧的值。 – ste2425
我一直认为'==='不能用于检查字符串值,但据说我错了。一些编程语言比其他编程语言更宽容。 –
香港专业教育学院不使用Facebook的API,但你怎么验证反对呢?在点击按钮之前,你确定你的身份验证过吗?如果你添加了一些信息,可以帮助其他人使用它。 – ste2425
是的!我在页面的最顶端调用window.fbAsyncInit函数,它也给出了结果以及 –