단추 이벤트와 유사한 내용을 캡처 할 수 있습니다.
Facebook elements events
예 :
<script>
window.fbAsyncInit = function() {
FB.init({appId: '127654160646013', status: true, cookie: true, xfbml: true});
FB.Canvas.setSize({ width: 520, height: 742 });
FB.Event.subscribe('edge.create', function(response) {
window.parent.location = ADDRESS;
});
};
(function() {
var e = document.createElement('script'); e.async = true;
e.src = document.location.protocol + '//connect.facebook.net/lt_LT/all.js';
document.getElementById('fb-root').appendChild(e);
})();
</script>
는 또한 사용자 팬의 상태를 확인해야합니다. 해결책은 다음과 같습니다.
<?
define('FACEBOOK_APP_ID', 'xxx');
define('FACEBOOK_APP_SECRET', 'xxx');
$is_fan = false;
if (!empty($_REQUEST['signed_request'])) {
list($encoded_sig, $payload) = explode('.', $_REQUEST['signed_request'], 2);
$sig = base64_decode(strtr($encoded_sig, '-_', '+/'));
$data = json_decode(base64_decode(strtr($payload, '-_', '+/')), true);
$expected_sig = hash_hmac('sha256', $payload, FACEBOOK_APP_SECRET, true);
if ($sig == $expected_sig) {
if (!empty($data['page']['liked'])) {
$is_fan = true;
}
}
}
?>
필요한 모든 것이 있습니다. 그리고 자바 스크립트를 통해서만 리디렉션 할 수 있습니다.
window.parent.location = ADDRESS;
코드는 팬이 아닌/팬 페이지를 처리하는 방법처럼 보입니까? 그 맞습니까? 또한 760 개의 와이드 앱을 허용합니까? – BillyMedia
팬 페이지에는 너비가 iframe이 520 픽셀 이상일 수 없습니다. 더 작은 팬 페이지 버전을 만들어야합니다. 또한이 팬 상태 추출기는 팬 페이지에서만 작동합니다 (앱이 $ _REQUEST [ 'signed_request']를 전송하지 않기 때문에) – neworld