2011-12-19 8 views
0

ページタブで実行するための簡単なアプリをセットアップしました。アプリの使用を許可した後、基本情報だけを確認して、ユーザーがそのページを好きかどうかを確認します。彼らがしなければ、あなたが進む前にページを気に入るように頼んでいますが、その時点でLIKEボタンをクリックすると、ページがリフレッシュされないので、私のアプリケーションに変更が見られません。ユーザーは吊り下げられており、ページタブを再度クリックする必要があります。開始する前にページが好きな人は、すべて正常に動作し、LIKEボタンを押すとページが正常に更新されます。Facebookページタブ - 「LIKE」ボタンがページを再読み込みしない

これには理由がありますか?または私はトリックを欠いている - 私は自分の好きなボタンや何かを追加する必要がありますか?

私はfacebook appsにとって本当に新しいと評価しています。

EDIT - 私はそれが違いをもたらす場合、Asp.Net C#を使用しています。良い文書を見つけるのは非常に難しいので、私はできる限り最善の方法でこれをまとめました。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head runat="server"> 
<title></title> 
<script src="http://connect.facebook.net/en_US/all.js" type="text/javascript"></script> 
<script type="text/javascript"> 
    FB.init({ 
     appId: '9999999999', 
     status: true, // check login status 
     cookie: true, // enable cookies to allow the server to access the session 
     xfbml: true // parse XFBML 
    }); 
</script> 
<script type="text/javascript"> 
    window.fbAsyncInit = function() { 
     FB.Canvas.setSize({ width: 520, height: 1300 }); 
    } 
    // Do things that will sometimes call sizeChangeCallback() 
    function sizeChangeCallback() { 
     FB.Canvas.setSize({ width: 520, height: 1300 }); 
    } 
</script> 
</head> 
<body style="width:520px;margin:0; padding:0; border:0;font-family:Arial;font-size:12px;"> 
<form id="form1" runat="server"> 
<div id="fb-root"> 
    <div id="intro" runat="server" style="width:520px;background-color:#FFFFFF;"> 
     Enter our competition<br /> 
     <br /> 
     <asp:Button ID="authorise" runat="server" Text="authorise" OnClick="Authorise_Click" /> 
    </div> 
    <div id="voting" runat="server" visible="false" style="background-color:#FFFFFF;width:520px;padding:0px"> 
     <div id="notliked" runat="server" visible="false"> 
      You must LIKE our page before you can enter the competition 
     </div> 
     <div id="questions" runat="server" visible="false"> 
      <div id="week1" runat="server" visible="false"> 
       Q1 Q2 Q3  
      </div> 
      <div id="week2" runat="server" visible="false"> 
       Q4 Q5 Q6 
      </div> 
      <div id="entereddiv" runat="server" visible="false"> 
       You have already entered this week's competition. 
      </div> 
     </div> 

    </div> 
    <div id="terms" runat="server" style="color:Black;font-size:11px;width:450px;"> 

    </div> 
</div> 

</form> 
<script type="text/javascript"> 

    window.fbAsyncInit = function() { 
     FB.init({ appId: '9999999999', status: true, cookie: true, xfbml: true, oauth: false }); 

     // If like button pressed, refresh page 
     FB.Event.subscribe('edge.create', function (response) { top.location = 'http://www.facebook.com/pages/MY_PAGE_NAME/PAGE_ID?sk=app_9999999999'; }); 

    }; 
    (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> 

</body> 
</html> 
+0

通常、ページを更新します。それ以外の場所で試してみてください。https://www.facebook.com/cocacola –

+0

アプリを承認した直後ではなく、リフレッシュします。上記のようにすれば、アプリを再起動し、違うをクリックして、好きな場所ではなく、好きなボタンを使用してください。 – Dave

答えて

0

私はこれを実際にソートしたと思います。ユーザーにアプリケーションを許可せずにisLikedプロパティを取得できるとは思いませんでした。今すぐ私はそれを取り替えたので、まずsignedrequestをチェックし、許可を求める前にページを好きにしてください。これは私の問題を回避します。

私はまだFacebookのバグだとは思っていますが、それはできませんが、このプロジェクトではこの解決策ができます。

0

Facebook JS APIのアクションを聴いて、ページを更新するコールバックを行う必要があります。

このコードブロックをサイトの最後に追加してください。

<script type="text/javascript"> 

    window.fbAsyncInit = function() 
    { 
     FB.init({appId: '<appID>', status: true, cookie: true, xfbml: true, oauth: false }); 

     // If like button pressed, refresh page 
     FB.Event.subscribe('edge.create', function(response) { top.location = '<Page Address>'; }); 

    }; 
    (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> 
+0

私はそれを試してみるよ、 – Dave

+0

それはうまくいきませんでした、私はあなたのHTMLコードを追加するように編集しました。 IDは明らかに変更されました – Dave

+0

あなたのファンページとアプリケーションタブのリンクを教えてください。 –

関連する問題