我正在尝试使用Facebook登录Parse with cordova。
$cordovaFacebook.login(['email'], function(response) {
Parse.FacebookUtils.logIn('email', {
success: function(user) {
console.log('success fb login')
// Handle successful login
},
error: function(user, error) {
// Handle errors and cancellation
console.error(error)
}
});
}, function(error) {
console.error(error)
});
在.run
的{{1}}区块中,我有
app.js
然而,在我在iOS设备上运行应用程序时,记录器上,我从未看到“Parse FB loaded”。当我在浏览器上运行它时,我执行看到“Parse FB Loaded”。
每当我尝试在设备上通过Facebook登录时,都会收到错误window.fbAsyncInit = function () {
Parse.FacebookUtils.init({
appId: fbAppId,
autoLogAppEvents: true,
xfbml: true,
status: true,
cookie: true,
version: 'v2.4'
});
FB.AppEvents.logPageView();
console.log('Parse FB loaded')
// loadParse()
};
。
我认为问题是Parse在设备上没有启动FacebookUtils,但它在浏览器上。为什么会这样?它会成为You must initialize FacebookUtils before calling logIn
对象的问题吗?
请注意,Facebook登录本身 正在工作(通过整个FB登录流程),但在使用FacebookUtils通过Parse登录回调之后,我收到了所描述的错误。
感谢您的帮助!
答案 0 :(得分:1)
在FacebookUtils之前尝试这个......
parse.initialize('APPLICATION_ID', 'JAVASCRIPT_KEY');
parse.serverURL = 'https://parseapi.back4app.com/';
parse.FacebookUtils.init({ // this line replaces FB.init({
appId : 'xxxxxxx', // Facebook App ID
status : true, // check Facebook Login status
cookie : true, // enable cookies to allow Parse to access the session
xfbml : true, // initialize Facebook social plugins on the page
version : 'v2.12'//point to the latest Facebook Graph API version
});