Iframe 登录/退出按钮不再保持状态
在过去的24小时里,我的代码一直运行良好。我没有更改任何内容,但现在#fb按钮变小了,不再在应该时显示“注销” 你可以在网站上看到这一点 以下代码嵌套在BODY>ROOT中:Iframe 登录/退出按钮不再保持状态,iframe,facebook-javascript-sdk,facebook-social-plugins,facebook-login,Iframe,Facebook Javascript Sdk,Facebook Social Plugins,Facebook Login,在过去的24小时里,我的代码一直运行良好。我没有更改任何内容,但现在#fb按钮变小了,不再在应该时显示“注销” 你可以在网站上看到这一点 以下代码嵌套在BODY>ROOT中: <div id="fb-root"></div> <script type="text/javascript"> // Load the SDK Asynchronously (function(d){ var js, id = 'facebook-jss
<div id="fb-root"></div>
<script type="text/javascript">
// 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));
// Init the SDK upon load
window.fbAsyncInit = function() {
FB.init({
appId:'271193286279763',
channelUrl:'//'+window.location.hostname+'/channel',
status:true,
cookie:true,
xfbml:true
});
// Conditional UI for landing page
if (landing) {
FB.getLoginStatus(function(response) {
if(response && response.status == 'connected') {
FB.api('/me', function(response) {
var heading = $('#goods h1').text().replace('Homewrd','Welcome '+response.first_name+'!');
$('#goods h1').text(heading);
});
}
});
}
// listen for and handle auth.statusChange events
FB.Event.subscribe('auth.statusChange', function(response) {
fbEventful = true;
if (response.authResponse) {
fbToken = response.authResponse.accessToken;
$('#fb-button').css({'display':'inline','float':'left'});
$('#toolbox').css({'display':'inline'});
$('#local-login').hide();
$('#local-logout').hide();
currentUser = {
fbid:response.authResponse.userID
}
displayPicture();
} else {
$.cookie('cuat', null);
$.ajax({
url:'/logout.json',
type:'delete',
success:function() {
ajaxOff();
renderLocal();
}
});
}
});
FB.Event.subscribe('auth.login',
function(response) {
FB.api('/me', function(me){
if (me.name) {
currentUser = {
fbid:me.id,
email:me.email,
first_name:me.first_name,
last_name:me.last_name
}
params = {
fbid: currentUser.fbid,
user: {
fbid:currentUser.fbid,
email:currentUser.email,
first_name:currentUser.first_name,
last_name:currentUser.last_name
}
}
$.ajax({
url:domain+'/user.json',
data:params,
dataType:'json',
type:'post',
success:function(e) {
cuat = e.user.auth_token;
$.cookie('cuat', cuat, {
path:'/',
expires:7
}
);
if (rurl) {
refreshSession();
}
if (storedProcedure!==null) {
storedProcedure();
}
}
});
}
});
}
);
$('#local-logout a').click(function(e) {
e.preventDefault();
var x = confirm('Are you sure that you want to logout?');
if (x===true) {
ajaxOn();
$.ajax({
url:'/logout.json',
type:'delete',
success:function() {
ajaxOff();
window.location.reload();
}
});
}
return false;
});
setTimeout(function() {
if (!fbEventful) {
renderLocal();
}
},1000);
}
</script>
<div id="header">
<div id="logo">
<h1>Logo Link</h1>
</div>
<div id="session">
<div id="fb-button" autologoutlink="true" class="fb-login-button" scope="publish_stream,email,user_about_me,user_birthday,user_hometown,offline_access"></div>
<div id="fb-picture"></div>
<div id="local-login"><p>local login link</p></div>
<div id="local-logout"><p>local logout link</p></div>
</div>
</div>
//异步加载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);
}(文件);
//加载时初始化SDK
window.fbAsyninit=函数(){
FB.init({
appId:'271193286279763',
channelUrl:'/'+window.location.hostname+'/channel',
状态:正确,
曲奇:是的,
xfbml:对
});
//登录页的条件用户界面
如果(着陆){
FB.getLoginStatus(函数(响应){
如果(response&&response.status=='connected'){
FB.api('/me',函数(响应){
变量标题=$(“#商品h1”).text().replace('Homewrd','Welcome'+response.first#u name+'!');
$(#商品h1')。正文(标题);
});
}
});
}
//侦听并处理auth.statusChange事件
FB.Event.subscribe('auth.statusChange',函数(响应){
fbEventful=真;
if(response.authResponse){
fbToken=response.authResponse.accessToken;
$('fb button').css({'display':'inline','float':'left'});
$('toolbox').css({'display':'inline'});
$(“#本地登录”).hide();
$(“#本地注销”).hide();
当前用户={
fbid:response.authResponse.userID
}
显示图片();
}否则{
$.cookie('cuat',null);
$.ajax({
url:“/logout.json”,
类型:'delete',
成功:函数(){
ajaxOff();
renderLocal();
}
});
}
});
FB.Event.subscribe('auth.login',
功能(响应){
api('/me',函数(me){
如果(我的名字){
当前用户={
fbid:me.id,
电子邮件:me.email,
名字:我,名字,
姓:我。姓
}
参数={
fbid:currentUser.fbid,
用户:{
fbid:currentUser.fbid,
电子邮件:currentUser.email,
first\u name:currentUser.first\u name,
姓氏:currentUser.last\u name
}
}
$.ajax({
url:domain+'/user.json',
数据:params,
数据类型:'json',
类型:'post',
成功:职能(e){
cuat=e.user.auth_令牌;
$.cookie('cuat',cuat{
路径:“/”,
有效期:7
}
);
if(rurl){
刷新会话();
}
if(StoredProcess!==null){
存储过程();
}
}
});
}
});
}
);
$(“#本地注销a”)。单击(函数(e){
e、 预防默认值();
var x=confirm('您确定要注销吗?');
如果(x==true){
ajaxOn();
$.ajax({
url:“/logout.json”,
类型:'delete',
成功:函数(){
ajaxOff();
window.location.reload();
}
});
}
返回false;
});
setTimeout(函数(){
如果(!fbEventful){
renderLocal();
}
},1000);
}
徽标链接
本地登录链接
本地注销链接
我对js sdk html5登录按钮也有同样的问题,自动链接不再显示。这可能是出于设计考虑,因为它们在sdk中隐藏了很多私有函数。例如,我的注销页面在登录时,用于显示注销,此外,带有动态或静态文本的按钮不再显示文本。reAuthi是故意说的,因为当我在登录时单击登录按钮时,Facebook会通过告诉我已经登录,单击关闭来处理错误。在我的情况下,如果已经登录,则无法识别经过身份验证的用户。这可能与我将回调与服务器端会话相结合的方式有关,因此我需要一些时间来识别和修复。我将login.php页面缩减为纯js sdk,以解决登录php sdk时出现的问题。在我的脑海里,虽然我正在从浏览器中绘制会话。只是为了避免JSSDK出现故障。T