我尝试将 Facebook 与 Parse 集成。我遵循了以下指南,https://parse.com/docs/js_guide#fbusers但仍然遇到问题。
简而言之,facebook 有一个登录按钮。当用户不存在时,它会将用户重定向到注册页面,当它是现有用户时,它会将他们重定向到他们在帐户创建页面中选择的城市页面。如果用户取消注册过程,在登录时,现有用户将转到帐户注册页面。
但是,facebook 屏幕仅在用户不存在且尚未完成注册过程时出现。以下是我在尝试登录时收到的警告:
控制台警告/错误
传入 FB.init 的 'status' 标志,当设置为 true 时,可以 干扰 Parse Facebook 集成,因此已被压制。 如果需要,请明确调用 FB.getLoginStatus() 行为。
FB.init 已经被调用 - 这可能表示有问题 sdk.js:61 不支持设置authResponse
- 您必须在调用 logIn 之前初始化 FacebookUtils。
- 当用户已连接时调用 FB.login()。
下面是Javascript代码:
// Initialize Parse
Parse.initialize("ID", "ID");
window.fbAsyncInit = function() {
Parse.FacebookUtils.init({ // this line replaces FB.init({
appId : '433936150095453', // Facebook App ID
status : true, // check Facebook Login status
cookie : true,
xfbml : true, // initialize Facebook social plugins on the page
version : 'v2.2' // point to the latest Facebook Graph API version
});
// Run code after the Facebook SDK is loaded.
};
(function(d, s, id){
var js, fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) {return;}
js = d.createElement(s); js.id = id;
js.src = "//connect.facebook.net/en_US/sdk.js";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));
function fbLogin(){
Parse.FacebookUtils.logIn(null, {
success: function(user) {
if (!user.existed()) {
window.open("accountCreate.html", "_self");
} else {
if (city == "San Francisco") {
window.open("neighbourhoodselectSF.html", "_self");
} else if (city == "New York City"){
window.open("neighbourhoodSelectNYC.html", "_self");
}
else {
window.open("accountCreate.html", "_self");
}
}
},
error: function(user, error) {
alert("User cancelled the Facebook login or did not fully authorize.");
}
});
}
html代码:
<button onclick="fbLogin()" id="facebookLogin" class="button button-block button-positive">
<i class="icon ion-social-facebook"></i> <text id="textBtn">Get started with facebook </text>
</button>
<script src="js/facebook.js"></script>
<script src="lib/facebookConnectPlugin.js"></script>
如有任何帮助,我们将不胜感激。
最佳答案
这是因为您的应用程序无法在脚本标签中找到您尝试导入的 facebook 的 sdk.js。
替换
js.src = "//connect.facebook.net/en_US/sdk.js";
与
js.src = "https://connect.facebook.net/en_US/sdk.js";
关于javascript - 您必须在调用 logIn 之前初始化 FacebookUtils,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28948931/