Facebookのカスタムタブを作成しようとしていますが、ページのタブと直接リンクの両方でfirefox、chrome、Internet Explorer 8で完全に動作しますが、彼らのような。アプリはサンドボックスモードでないFacebookファンガードされたページは誰も拾わない
require 'src/facebook.php';
// Create our Application instance (replace this with your appId and secret).
$facebook = new Facebook(array(
'appId' => 'xxxxxxxx',
'secret' => 'xxxxxx',
));
$user = $facebook->getUser();
// alternative to the below but only works on the facebook tab itself
$signed_request = $_REQUEST["signed_request"];
list($encoded_sig, $payload) = explode('.', $signed_request, 2);
$data = json_decode(base64_decode(strtr($payload, '-_', '+/')), true);
if (empty($data["page"]["liked"])) {
echo "You are not a fan!";
} else {
echo "Welcome back fan!";
}
if ($user) {
try {
$likes = $facebook->api("/me/likes/xxxxxxxxxx");
if(!empty($likes['data']))
{
?>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$('#fan').click(function() {
$('#fan').animate({
opacity: 0.2,
width: 'auto',
height: 'auto'
}, 1000, function() {
// Animation complete.
$('#fan').hide('slow');
$('#voucher').show('slow');
});
});
});
</script>
<a href="#"><img id="fan" src="//www.website.com/facebook/2011/voucher/fans_image.jpg" alt="10% off" style="border:0;" /></a>
<div style="display:none; position:absolute; top:0; left:0;" id="voucher" >
<a href="//www.website.com/facebook/2011/voucher/EYE-TEST-DECEMBER-11.pdf" target="_blank"><img src="//www.website.com/facebook/2011/voucher/fb-voucher-dec11.jpg" style="border:0;" alt="10% off" /></a> <br />
<p style="text-align:center"><a href="//www.website.com/facebook/2011/voucher/EYE-TEST-DECEMBER-11.pdf" target="_blank">Click here to download PDF version of the voucher.</a></p>
</div>
<?php
}
else
{
?>
<img style="position:absolute; top:0; left:0; border:0;" id="all" src="//www.website.com/facebook/2011/voucher/fb_like_page.jpg" width="520" height="304" alt="Click LIKE button to get 10% off." />
<?php
}
} catch (FacebookApiException $e) {
error_log($e);
$user = null;
}
}
if ($user) {
$logoutUrl = $facebook->getLogoutUrl();
}
else {
//user isn't logged in so just show un-liked image
?>
<img style="position:absolute; top:0; left:0; border:0;" id="all" src="//www.website.com/facebook/2011/voucher/fb_like_page.jpg" width="520" height="304" alt="Click LIKE button to get 10% off." />
<?php
$loginUrl = $facebook->getLoginUrl(array(
'scope' => 'user_likes'
));
}
詳細 :ここ
は私のコードです。
私のアカウント設定にはアプリが表示されているだけなので、それは私にとってはうまくいっていますが、他のファンタイテッドタブを見ると権限通知ポップアップが表示されないので、その場合ですか?
を行っていませんありがとう、アクセス許可を必要としないファンゲートのタブを持つ方法はありません(おそらくFBMLを使用することができますが、iframeを代わりに使用することはできません)。その場合、なぜ私のアプリは 'user_likes'パーミッションを要求しませんか? – martincarlin87
あなたはファンゲートのページを持つことができますが、ユーザーが誰であるかを知らずに好きかどうかを調べます。 2番目のコードは、ユーザーが誰であるかを知り、アプリケーションを許可する必要があります。 $ signed_request = $ _REQUEST ["signed_request"]; list($ encoded_sig、$ payload)= explode( '。'、$ signed_request、2); $ data = json_decode(base64_decode(strtr($ payload、 '-_'、 '+ /'))、true); if(empty($ data ["page"] ["liked"])){ echo "あなたはファンではありません! } else { echo "ようこそファン!"; } 私はvar_dump($ data)を実行します。ここでこれは "好きな"情報を持っているはずです – TommyBs
tommyに感謝します、私は '$ _REQUEST'だけで試してみます - しかし、タブのフレームのソースを見ると、私はまだ 'あなたはファン!'私はまだこれが動作するかどうかは分かりません。 – martincarlin87