当我使用在Settings / facebook中设置的帐户在ios 6设备中运行fb.login()时,我得到以下内容
operation couldn't be completed (com.facebook.sdk error 2)
在ios 5中,该应用程序运行正常,问题是本机登录
请帮忙!这是我的代码
这是facebook init
this.appId = appId;
var me = this;
document.addEventListener('deviceready', function() {
try {
FB.init({ appId: "294003447379425", status: true, cookie: true, nativeInterface: CDV.FB, useCachedDialogs: false });
} catch (e) {
console.log(e);
}
}, false);
if (!this.appId) {
Ext.Logger.error('No Facebook Application ID set.');
return;
}
var me = this;
me.hasCheckedStatus = false;
FB.Event.subscribe('auth.logout', function() {
// This event can be fired as soon as the page loads which may cause undesired behaviour, so we wait
// until after we've specifically checked the login status.
if (me.hasCheckedStatus) {
me.fireEvent('logout');
}
});
// Get the user login status from Facebook.
FB.getLoginStatus(function(response) {
me.fireEvent('loginStatus');
clearTimeout(me.fbLoginTimeout);
me.hasCheckedStatus = true;
if (response.status == 'connected') {
me.fireEvent('connected');
Ext.Viewport.add(Ext.create('CinePass.view.Main'));
} else {
me.fireEvent('unauthorized');
console.log('noconectado');
Ext.Viewport.add(Ext.create('CinePass.view.LoggedOut'));
}
});
// We set a timeout in case there is no response from the Facebook `init` method. This often happens if the
// Facebook application is incorrectly configured (for example if the browser URL does not match the one
// configured on the Facebook app.)
me.fbLoginTimeout = setTimeout(function() {
me.fireEvent('loginStatus');
me.fireEvent('exception', {
type: 'timeout',
msg: 'The request to Facebook timed out.'
});
Ext.Msg.alert('CinePass', 'Existe un problema con Facebook, se iniciará la aplicación sin conexión a Facebook.', Ext.emptyFn);
Ext.Viewport.add(Ext.create('CinePass.view.Main'));
}, me.fbTimeout);
这是登录
FB.login(
function(response) {
if (response.session) {
alert(response.session);
} else {
alert(response.session);
}
},
{ scope: "email,user_about_me,user_activities,user_birthday,user_hometown,user_interests,user_likes,user_location,friends_interests" }
);
答案 0 :(得分:2)
遇到同样的问题并花了几天时间来解决这个问题,原因有很多:
1)第一次启动应用时,如果您拒绝“您是否允许此应用使用您的Facebook权限”,您将收到此错误,您需要做的是,转到设置>一般> Facebook>打开你的应用程序或转到设置>一般>重置>重置位置&隐私(这将重置并向您询问所有应用程序的“您是否允许此应用程序使用您的Facebook权限”。
2)慢/无互联网可能导致错误
3)再次创建你的证书,然后转到build.phonegap.com,为IOS创建一个新密钥并更改IOS密钥(这对我有用,我不知道它是如何工作的但它确实如此,我注意到了使用新的IOS密钥后,重要的应用程序文件大小增加)
4)如果您的应用处于沙盒模式,并且您的IOS当前Facebook帐户不是应用测试人员,您也会收到错误。我只是禁用沙盒模式并且它可以工作,确保您的Facebook应用设置具有正确的捆绑ID,如果您的应用仍在开发中,请将0添加到应用商店ID。