Facebook的“喜欢” - 如何让着陆标签重定向到另一个标签
我有一个Facebook“着陆标签”,也就是设置了,我已经安装了,我想风扇后要激活另一个选项卡中点击“像“按钮。我搜索了互联网,并提出了JavaScript和PHP SDK代码的混合,但到目前为止我还没有真正为我工作。Facebook的“喜欢” - 如何让着陆标签重定向到另一个标签
我想有两个主要问题:
风扇最初访问该网站(他们直接去登陆选项卡)后点击“Like”按钮,我想的iframe重定向到我创建的其他标签。我尝试了一个简单的JavaScript重定向(
windows.location = "URL"
),并将其更改为我想要的网址,但不在Facebook的iframe中 - 显然它也不是通过单击操作调用的。如果我可以得到上述工作,接下来的问题是,一旦类似的按钮被点击,我想第二个标签始终是用户的默认值....现在用户点击“喜欢”它会指向墙上的页面,当访问者返回页面时,它会再次显示墙上的页面。如果我遇到问题#1与重定向一起工作,那么它总是默认使用第二个选项卡,或者当他们重新访问该页面时它仍然会将人员发送到墙上?
这是我找到的一些代码。 JavaScript SDK和PHP SDK。我哪里错了?
FB.Event.subscribe('edge.create',
function(response) {
location.href = 'URLofSecondtab';
}
);
上面的代码是什么,我已被告知是就像在JavaScript Facebook的事件处理程序。
<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>
我已经找到了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代码)?
我认为你的问题可以用这个来解决:
How to check if a user likes my Facebook Page or URL using Facebook's API
在该网页上,他对杰森Siffring的回答验证码:
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!";
}
}
而是那些“回声的,你可以呼应“window.document.location.replace(‘地方’)”
用户后喜欢的页面将刷新,所以在这一点上,你所能我们你e $ PAGE_ID变种来检测用户是否喜欢过的分页,然后重定向iframe的parnt,在$ PAGE_ID的值将是1,所以在您的文档的身体,你可以这样做:
<? if($page_id){ ?>
<script>window.top.location.href = "http://www.facebook.com/FANPAGE_USERNAME?sk=app_APPID";</script>
<? } ?>
着陆标签将与时间表被禁止的网页,在3月30日
编辑:那是,如果你talinkg约约扇页,如果不是请不要介意。
如果您正在使用Facebook的页面选项卡,然后参数会像以下(PHP):
$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
更多信息:https://developers.facebook.com/docs/appsonfacebook/pagetabs/ 滚动至年底,并阅读本段=>与Facebook的API
整合