Javascript “脸谱网”;例如如何使登录选项卡重定向到另一个选项卡
我有一个Facebook的“登陆标签”,这是设置,我已经安装了另一个标签,我想被激活后,球迷点击“喜欢”按钮。我搜索了互联网,找到了JavaScript和PHPSDK的混合代码,但到目前为止,没有任何东西真正适合我 我想主要有两个问题:Javascript “脸谱网”;例如如何使登录选项卡重定向到另一个选项卡,javascript,facebook,facebook-graph-api,facebook-like,Javascript,Facebook,Facebook Graph Api,Facebook Like,我有一个Facebook的“登陆标签”,这是设置,我已经安装了另一个标签,我想被激活后,球迷点击“喜欢”按钮。我搜索了互联网,找到了JavaScript和PHPSDK的混合代码,但到目前为止,没有任何东西真正适合我 我想主要有两个问题: 在粉丝最初访问站点(他们直接进入登录选项卡)并单击“like”按钮后,我希望iframe重定向到我创建的另一个选项卡。我尝试了一个简单的JavaScript重定向(windows.location=“URL”),并将其更改为我想要的URL,但不在Facebook
windows.location=“URL”
),并将其更改为我想要的URL,但不在Facebook iframe中-显然,类似单击的操作也没有调用它FB.Event.subscribe('edge.create',
function(response) {
location.href = 'URLofSecondtab';
}
);
上面的代码是我被告知的Facebook事件处理程序,类似于JavaScript
<div id="fb-root"></div>
<script type="text/javascript">
window.fbAsyncInit = function() {
FB.init({appId: 'idOfLandingTab', status: true, cookie: true, xfbml: true});
//FB.Canvas.setSize({ width: 520, height: 1500 });
FB.Event.subscribe('edge.create',
function(response) {
alert('like!');
// put redirect code here eg
window.location = "URLofSecondtab";
}
);
};
//Load the SDK asynchronously
(function() {
var e = document.createElement('script'); e.async = true;
e.src = document.location.protocol +
'//connect.facebook.net/en_US/all.js';
document.getElementById('fb-root').appendChild(e);
}());
</script>
window.fbAsyninit=函数(){
init({appId:'idOfLandingTab',状态:true,cookie:true,xfbml:true});
//FB.Canvas.setSize({宽度:520,高度:1500});
FB.Event.subscribe('edge.create',
功能(响应){
警惕(‘喜欢’);
//把重定向代码放在这里
window.location=“URLofSecondtab”;
}
);
};
//异步加载SDK
(功能(){
var e=document.createElement('script');e.async=true;
e、 src=document.location.protocol+
“//connect.facebook.net/en_US/all.js”;
document.getElementById('fb-root').appendChild(e);
}());
我已找到PHP SDK,但无法实现:
<?php
// Sample PHP code to customize the a Facebook Fan Page iFrame Application
// Refer to http://www.hyperarts.com/blog/customizing-facebook-iframe-application- signed_request_reveal_tab
require 'facebook.php';
$app_id = "APP_ID_HERE"; //which app id? the landing tab or the second tab that I want //redirected?
$app_secret = "APP_SECRET_HERE";
$facebook = new Facebook(array(
'appId' => $app_id,
'secret' => $app_secret,
'cookie' => true
));
$signed_request = $facebook->getSignedRequest();
$page_id = $signed_request["page"]["id"];
$page_admin = $signed_request["page"]["admin"];
$like_status = $signed_request["page"]["liked"];
$country = $signed_request["user"]["country"];
$locale = $signed_request["user"]["locale"];
echo "<br>page id = $page_id";
echo "<br>page admin = $page_admin";
echo "<br>like status = $like_status";
echo "<br>country = $country";
echo "<br>locale = $locale";
?>
哪个位置需要哪个选项卡URL和应用程序id?什么样的代码(JavaScript或PHP代码)?我认为您的问题可以通过以下方式解决: 在那一页上,Jason Siffrin的答案上有这样的代码:
if($signed_request = parsePageSignedRequest()) {
if($signed_request->page->liked) {
echo "This content is for Fans only!";
} else {
echo "Please click on the Like button to view this tab!";
}
}
在用户喜欢该页面后,它将刷新,因此此时您可以使用$page\u id变量检测用户是否喜欢该页面,然后重定向iframe的参数,$page\u id的值将为1,因此,在文档正文中,您可以执行以下操作:
<? if($page_id){ ?>
<script>window.top.location.href = "http://www.facebook.com/FANPAGE_USERNAME?sk=app_APPID";</script>
<? } ?>
window.top.location.href=”http://www.facebook.com/FANPAGE_USERNAME?sk=app_APPID";
登录选项卡将在3月30日禁用,页面的时间线为
编辑:即如果您是Talink关于粉丝页面,如果不是nevermind。如果您使用的是facebook页面选项卡,则参数的工作方式如下(PHP): 更多信息: 滚动至结尾,阅读此段落=>与Facebook API集成
$signed_request=$_REQUEST["signed_request"];
list($encoded_sig, $payload) = explode('.', $signed_request, 2);
$data = json_decode(base64_decode(strtr($payload, '-_', '+/')), true);
//to get page id use this => $data["page"]["id"]
//to get liked or unlike page => $data["page"]["liked"] = this will return 1 if
//liked else blank