Javascript Facebook示例JS登录未加载
我正在尝试用JS应用程序替换我的画布应用程序的PHP登录名,并且几乎完全从这里和这里复制了Facebook示例。但是,即使警报提示正在打开,也不会提示用户接受权限。有人能从下面的代码中看出原因吗?我已经做了几个小时了,我看不出我的代码与建议的代码有什么不同。这可能与不运行javascript的浏览器保护有关吗Javascript Facebook示例JS登录未加载,javascript,facebook,facebook-login,Javascript,Facebook,Facebook Login,我正在尝试用JS应用程序替换我的画布应用程序的PHP登录名,并且几乎完全从这里和这里复制了Facebook示例。但是,即使警报提示正在打开,也不会提示用户接受权限。有人能从下面的代码中看出原因吗?我已经做了几个小时了,我看不出我的代码与建议的代码有什么不同。这可能与不运行javascript的浏览器保护有关吗 <?php require_once 'config.php'; // This contains app information //include_once 'scripts/
<?php
require_once 'config.php'; // This contains app information
//include_once 'scripts/mysql_connect.php'; // This is the database connection configuration
require_once 'Database.php';
$fbconfig['appUrl'] = "https://localhost/FindAFlatmate-Dev/";
?>
<html>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Profile Page</title>
</head>
<body>
<div id="fb-root"></div>
<script>
window.fbAsyncInit = function() {
FB.init({
appId : '127865210690483', // App ID
status : true, // check login status
cookie : true, // enable cookies to allow the server to access the session
xfbml : true // parse XFBML
});
// Additional initialization code here
alert('Api loaded');
FB.login(function(response) {
if (response.authResponse) {
console.log('Welcome! Fetching your information.... ');
FB.api('/me', function(response) {
console.log('Good to see you, ' + response.name + '.');
});
} else {
console.log('User cancelled login or did not fully authorize.');
}
});
};
// Load the SDK Asynchronously
(function(d){
var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0];
if (d.getElementById(id)) {return;}
js = d.createElement('script'); js.id = id; js.async = true;
js.src = "//connect.facebook.net/en_US/all.js";
ref.parentNode.insertBefore(js, ref);
}(document));
</script>
</body>
</html>
个人资料页
window.fbAsyninit=函数(){
FB.init({
appId:'127865210690483',//应用ID
状态:true,//检查登录状态
cookie:true,//启用cookie以允许服务器访问会话
xfbml:true//解析xfbml
});
//这里有额外的初始化代码
警报(“Api加载”);
FB.登录(功能(响应){
if(response.authResponse){
log('欢迎!获取您的信息…);
FB.api('/me',函数(响应){
log(“很高兴见到你,+response.name+”);
});
}否则{
log('用户取消登录或未完全授权');
}
});
};
//异步加载SDK
(职能(d){
var js,id='facebook jssdk',ref=d.getElementsByTagName('script')[0];
if(d.getElementById(id)){return;}
js=d.createElement('script');js.id=id;js.async=true;
js.src=“//connect.facebook.net/en_US/all.js”;
ref.parentNode.insertBefore(js,ref);
}(文件);
但是,即使警报提示正在打开,也不会提示用户接受权限。有人能从下面的代码中看出原因吗
您在页面加载时直接调用FB.login,没有用户交互,因此很可能是浏览器的弹出窗口拦截器阻止了登录对话框的显示
对于FB.login的一般建议是仅在显式用户交互时调用它,例如用户单击显示“login”或其他内容的链接/按钮。通过这种方式,popup FB.login打开时不太可能被阻止,因为当前浏览器中弹出窗口阻止程序的默认配置是只阻止“自动”打开的弹出窗口,而用户不会以任何方式请求它们