2

ファンページにタブとして追加できる Facebook アプリケーションがあります。アプリケーションを使用するには、ユーザーが認証される必要があります。これは、アプリケーションを追加していないユーザーにのみ表示されるリンクで requirelogin=1 を使用することで実現できます。この部分は正常に動作します。

ただし、ユーザーがrequireloginが開くdhtmlポップアップからアプリケーションの許可を与えた後、タブをリロードします。そのためには、次のように完全な URL をリンクに含める必要があります。

<a href="http://www.facebook.com/pages/PAGE_NAME/PAGE_ID?v=app_APP_ID" requirelogin=1>Authorize</a>

完全な URL を取得する方法、または少なくとも PAGE_NAME を取得してこの URL を動的に構築する方法がわかりません。アプリは特別な権限がなくてもどこにあるかを知ることができるはずです。

4

4 に答える 4

3

タブが読み込まれると、APIは、特に配列を含むSigned Requestを渡します。これを使用して、現在コードを呼び出しているページ ID を動的に取得できます。pageidlikedadmin

于 2011-07-19T06:06:30.673 に答える
2

PAGE ID と APP ID をお持ちの場合は、次のようにします。

http://www.facebook.com/profile.php?id=PAGE_ID#v=app_APP_ID

例えば:

http://www.facebook.com/profile.php?id=282955631557#v=app_278523304881
于 2010-04-12T03:25:32.580 に答える
0

上記の回答はすべて機能しない(ページ ストリームにのみリダイレクトされる) か、現在は非推奨です。あなたがJSを使用している最善の解決策:

// called when like button, box, etc is rendered
FB.Event.subscribe("xfbml.render", function() { 

    // assigns click to that thing
    FB.Event.subscribe("edge.create", function(response) { 

        window.location.reload(); // reload frame only

    });
});

また、facebook JS SDK をロードして初期化する必要があります。方法がわからない場合は、これを使用してください。

<script>
    document.onload = function(){

        (function(d){
            var js,id='facebook-jssdk';
            if(d.getElementById(id)){return;}
            js=d.createElement('script');
            js.id=id;js.async=true;js.src="//connect.facebook.net/pl_PL/all.js";
            d.getElementsByTagName('head')[0].appendChild(js);
        }(document));

        window.fbAsyncInit = function(){
            FB.init({
                appId  : <PASTE_YOUR_APP_ID_HERE>,
                status : true, // check login status
                cookie : true, // enable cookies to allow the server to access the session
                xfbml  : true  // parse XFBML
            });
            FB.Event.subscribe("xfbml.render", function() {
                FB.Event.subscribe("edge.create", function(response) {
                    window.location.reload();
                });
            });
        }
    }
</script>
于 2012-05-08T10:53:35.117 に答える
0

新しいスキームでは、 # は機能しなくなりました。使用する必要があります

http://www.facebook.com/profile.php?id=PAGE_ID#v=app_APP_ID

パラメータをアプリに渡すには、「app_data」というパラメータにある必要があります

http://www.facebook.com/profile.php?id=PAGE_ID#v=app_APP_ID&app_data="..."

複数のパラメーターを運ぶための最善の方法は、app_data を Json でエンコードすることです。

于 2012-04-22T13:48:02.613 に答える