Php Facebook API,仅在IE上使用Facebook登录
我正在尝试使用OpenGraphAPI实现“使用Facebook登录”。到目前为止,这在FF、Chrome、Safari上有效,但在IE9上测试不起作用 在IE上,我可以登录Facebook对话框。我可以成功登录到Facebook,但什么也没发生。在其他浏览器上,页面重定向,fb用户数据存储到数据库中 我也在不同的场合尝试了两种FB医生类型,但都没有成功Php Facebook API,仅在IE上使用Facebook登录,php,javascript,facebook,facebook-graph-api,Php,Javascript,Facebook,Facebook Graph Api,我正在尝试使用OpenGraphAPI实现“使用Facebook登录”。到目前为止,这在FF、Chrome、Safari上有效,但在IE9上测试不起作用 在IE上,我可以登录Facebook对话框。我可以成功登录到Facebook,但什么也没发生。在其他浏览器上,页面重定向,fb用户数据存储到数据库中 我也在不同的场合尝试了两种FB医生类型,但都没有成功 xmlns:fb="http://ogp.me/ns/fb#" xmlns:fb="http://www.facebook.com/2008/
xmlns:fb="http://ogp.me/ns/fb#"
xmlns:fb="http://www.facebook.com/2008/fbml"
编辑:我删除了FB.api的内容,只是为了包含一个用于测试的警报框。什么都能做,但我还是
<div id="fb-root"></div>
<script>
window.fbAsyncInit = function() {
FB.init({
appId : '<?php echo $AppID; ?>',
channelUrl : '//www.mysite.net/channel.php', // Channel File
oauth : true,
status : true, // check login status
cookie : true, // enable cookies to allow the server to access the session
xfbml : true // parse XFBML
});
};
function fb_login(){
FB.login(function(response) {
if (response.authResponse) {
console.log('Welcome! Fetching your information.... ');
//console.log(response); // dump complete info
access_token = response.authResponse.accessToken; //get access token
user_id = response.authResponse.userID; //get FB UID
FB.api('/me', function(response) {
alert(response.id);
});
} else {
//user hit cancel button
console.log('User cancelled login or did not fully authorize.');
}
}, {
scope: 'email,publish_actions'
}
);
}
// 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>
window.fbAsyninit=函数(){
FB.init({
appId:“”,
channelUrl:'//www.mysite.net/channel.php',//通道文件
真的,
状态:true,//检查登录状态
cookie:true,//启用cookie以允许服务器访问会话
xfbml:true//解析xfbml
});
};
函数fb_login(){
FB.登录(功能(响应){
if(response.authResponse){
log('欢迎!获取您的信息…);
//console.log(响应);//转储完整信息
access\u token=response.authResponse.accessToken;//获取访问令牌
user\u id=response.authResponse.userID;//获取FB UID
FB.api('/me',函数(响应){
警报(response.id);
});
}否则{
//用户点击取消按钮
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);
}(文件);
尝试删除/注释您的console.log()区域的代码,我知道这很疯狂,但上次我在IE中尝试这些,他们抱怨无法在未定义的情况下调用log。。。我希望我能赶上时代
如果有的话,试一试,绝对值得尝试一个潜在的简单修复。请相信我,我知道这听起来很傻,但在过去,它一直是我IE bug的来源 重要提示:请指定您测试的IE版本。感谢提醒。。。使用IE9.:)我告诉你,IE应该不再存在,因为它远远落后于这样的趋势。我真的很高兴听到它为你工作:D只是一个额外的不幸的注意事项,永远不要在这些日志实现的情况下投入生产,否则IE将吃掉你的网站bwainz@BryanMoyles,虽然IE可能不是最好的浏览器,但没有理由调用
console.log,因为没有定义console
,控制台
是浏览器在IE中提供的功能,它仅在开发人员工具打开时定义。