有时可以'使用JS API获取FB id
Sometimes can't get FB id with JS API
在大约0.3%的用户中,我无法使用JS API获取他们的FB ID。在某些情况下,我以前为这些用户获得过它。造成这种情况的原因是什么?有什么解决办法吗?
据我所知,大多数用户都在Windows上使用firefox。
我的代码:
window.fbAsyncInit = function () {
FB.init({
appId : "xxxx",
status : true,
cookie : true,
xfbml : true,
oauth : true
});
FB.Canvas.setSize({width:$("#mainbody").outerWidth(),height:$("#mainbody").outerHeight()});
FB.getLoginStatus(function (response) {
if(response.authResponse){
if(response.authResponse.userID){
fbId = response.authResponse.userID;
$("#hiddenFbId").val(fbId);
setSession();
}
}
if (response.status === 'connected') {
FB.api(
"/me?locale=et_EE",
function (response) {
if (response && !response.error) {
fbName = response['name'];
fbId = response['id'];
$("#hiddenFbId").val(fbId);
fbEmail = response['email'];
setSession();
}
});
} else {
FB.login(function (response) {
if (response.authResponse) {
if(response.authResponse.userID){
fbId = response.authResponse.userID;
$("#hiddenFbId").val(fbId);
setSession();
}
FB.api(
"/me?locale=et_EE",
function (response) {
if (response && !response.error) {
fbName = response['name'];
fbId = response['id'];
$("#hiddenFbId").val(fbId);
fbEmail = response['email'];
setSession();
}
});
} else {
fbDenied = true;
}
}, {
scope : 'public_profile,email,user_likes'
});
}
});
}
永远不要在FB.getLoginStatus的异步(!)回调函数中调用FB.login。有些浏览器会阻止登录弹出窗口。如果你这样做,你总是需要在用户交互时调用FB.login-在页面加载时调用它是个坏主意。当用户进入你的应用程序时,在他们知道你的应用是关于什么之前,不要强迫他们授权你的应用。
- FB.getLoginStatus on page load刷新用户令牌并检查用户是否获得授权
- FB.点击鼠标登录
这样也更容易删除一些多余的代码,并将FB.api调用转移到函数中。
它可能会也可能不会解决你的问题,但它绝对是重要的,也是常见的错误来源。
相关文章:
- 任何方式使AJAX调用Gmail API,而无需通过JS库
- 谷歌地图JS API+JSON-多个标记没有显示
- 与运行长作业(javascript,node.js)的第三方API同步的最佳实践
- 谷歌地图API JS V3包含但不起作用
- 谷歌地图API JS-放置两个组合字段的自动完成
- 在谷歌地图API JS V3上显示距离用户当前位置最近的多个标记,距离30公里
- 使用 Node 查询推特 api.js但收到错误
- 节点上的条带 API .js错误:没有这样的客户:
- Strava v3 api JS GET data
- 正在提供谷歌无验证码重新验证码的 api.js在本地阻止正确的行为
- FB API (js adk).获取小组中的所有帖子
- 使用Dropbox API JS Chooser时如何显示所选文件名
- 带有API.js的语义UI搜索选择下拉菜单-未发生API调用
- 谷歌地图API JS:试图将地址转换为Lat-Long
- 如何使用twitter api(js)获取用户配置文件图像
- 在使用谷歌地图API js时无法访问全局变量
- Google Maps API (JS V3) -渐进式加载
- API_Key是必要的,在哪里需要使用谷歌地图API JS
- 如何在 sails 中命名我的 api .js就像 /api/v1 一样
- 谷歌地图API JS所有点打开相同的信息窗口点击