ページタブ内で実行される Facebook アプリを開発する必要があります。このページを気に入ったユーザーのみがアプリを使用できる (したがって、承認する) 必要があります。
signed_requestパラメーターを使用すると、特定の facebook ユーザーがページを気に入ったかどうかを知るのはかなり簡単です。
var isFan = false;
if (req.facebook.signedRequest && req.facebook.signedRequest.page){
isFan = req.facebook.signedRequest.page.liked;
}
これはうまく機能しています。ここで、ユーザーがページを気に入ったら、それを承認する「LAUNCH THIS APP」ボタンを表示します。
$('#authApp').click(function(){
FB.login(function(response) {
if (response.authResponse) {
window.location = window.location;
}
}, {scope: 'user_likes,user_photos'});
return false;
});
ご覧のとおり、アプリが正常に承認された場合は、ページをリロードします。
ただし、ページがリロードされると、signed_request.pageパラメーターが欠落しています。したがって、非ファン向けの html マークアップが表示されます。
これは、アプリを承認した後にリロードすると、signed_request がどのように見えるかです。
{
アルゴリズム: 'HMAC-SHA256'、コード: '...'、issued_at: 1348003786、user_id: '100...' }
その直後にページを更新すると。すべて問題なく、ページ情報が再び表示されます。
{ アルゴリズム: 'HMAC-SHA256'、有効期限: 1348009200、issued_at: 1348004248、oauth_token: 'AA..'、ページ: { id: '490...'、like: true、admin: true }、ユーザー: { country : 'ec'、ロケール: 'en_US'、年齢: {分: 21 } }、user_id: '100...' }
これは、これが機能するはずの方法ですか?
これを回避するための推奨される方法は何ですか?
ありがとう!