3

私は自分のウェブサイトにを持っていhrefました。ユーザーがそれをクリックすると、マルチフレンドセレクターが表示され、友達を私のWebサイトに招待できるようになりました。これは、次のコードを使用して行われました。

 FB.ensureInit(function() {
        var dialog = new FB.UI.FBMLPopupDialog('XXXXXXX', '');
        var fbml = 'Multi-Friend-Selector FBML'
        dialog.setFBMLContent(fbml);
        dialog.setContentWidth(620);
        dialog.setContentHeight(570);
        dialog.show();
    });

現在、新しいJavaScript SDK(http://connect.facebook.net/en_US/all.js)を使用していますが、古いメソッドが存在しません...
新しいSDKでそれを行うにはどうすればよいですか?

4

9 に答える 9

7

はい、ついにイライラするボックスを元の964ピクセルからサイズ変更しました。

互換性のために(将来修正されるか、より適切に文書化されることを期待しましょう)私はまだ言います

size:(width:600,height:500),

しかし、次に、親オブジェクトのプロパティとして幅と高さを分割するので、最終的には次のように使用します。

size:(width:600,height:500),width:600,height:500, ...

そして今では、選択したJavaScriptライブラリを使用してサイズ変更することもできます。つまり、jQueryのサイズ変更のサンプルを次に示します。

FB.ui({
    method: 'fbml.dialog',
    fbml: (
         '<div style="width:480px;border:1px black solid;">A small JavaScript library that allows you to harness ' +
         'the power of Facebook, bringing the user\'s identity, ' +
         'social graph and distribution power to your site.</div>'
       ),
    size: {width:640,height:480}, width:640, height:480
});
$(".FB_UI_Dialog").css('width', $(window).width()*0.8); // 80% of window width
// I'm also sure you could stack this call if you wanted to
于 2010-05-20T08:37:12.570 に答える
1

次のコードは私には有効ですが、次の点に注意してください。

  • 幅と高さは、「色あせた」太い青い境界線なしで、ダイアログボックス自体を参照します。
  • 幅+高さは、次のコードの3か所に表示されます。
  • COLSおよびROWS属性は、次の例のサイズ(625x515ピクセル)と一致します。
  • IEは最悪なので、IEでPOP-UPを強制するには、$。browserでjQueryを使用する必要がありました。

お役に立てれば :)

function fb_invite_friends() {
    FB.ui({method:'fbml.dialog', display:($.browser.msie ? 'popup' : 'dialog'), size:{width:625,height:515}, width:625, height:515, fbml:'<fb:request-form action="http://yoursite.com/" method="POST" invite="true" type="DayBox" content="Would you like to check out YOUR-SITE App too? <fb:req-choice url=\'http://apps.facebook.com/your-site/\' label=\'Yes\' />" <fb:multi-friend-selector showborder="false" actiontext="Invite your friends to use DayBox" cols=5 rows=3 bypass="cancel" email_invite="true" import_external_friends="false" /> </fb:request-form>'});
}

$(document).ready(function() {

    /* Facebook */
    window.fbAsyncInit = function() {
        FB.init({appId: fb_app_id, status: true, cookie: true, xfbml: true});
        if (facebook_canvas) {
            FB.Canvas.setAutoResize(4000); // Will resize the iFrame every 4000ms
        }
        FB.Event.subscribe('edge.create', function(response) {
            // The user clicked "LIKE", so we give him more coins!
            $.get(href_url, {action:'log_likes'});
        });
        // FBML Dialog size fix
        FB.UIServer.Methods["fbml.dialog"].size = {width:625, height:515};
    };
    (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);
    }());

}
于 2011-01-08T22:09:48.533 に答える
1

さて、オープンソースのFacebook JavaScript SDKを読んでから2日後(私はJavaScriptの専門家ではないため:P)、次の方法を見つけました。

FB.ui({
            method : 'fbml.dialog',
            fbml: '<fb:fbml>' +
                  '<fb:request-form action=......',
        });

見た目はシンプルですが、問題は、招待状を送信すると、新しいタブが開いたまま「ダイアログ」(Facebookの用語では、ポップアップは別の意味を持つため)を開いたままにすることです。

だから私はまだ苦労していますが、答えを見つけます!

于 2010-04-29T15:34:19.523 に答える
1

これは私のために働きます。

FB.ui({method:'fbml.dialog', fbml:'<fb:request-form action="URL" method="post" invite="true" type="TYPE" content="THIS IS THE MESSAGE <fb:req-choice url=\'URL\'label=\'Accept\' />" <fb:multi-friend-selector showborder="false" actiontext="REQUEST FORM TITLE" /> </fb:request-form>'})});

CAPSをコンテンツに置き換えます。

私が抱えている唯一の問題は、コンテンツに合わせてダイアログのサイズを変更する方法がわからないことです。964pxのままです。私は多くのバージョンを試しました

size:(width:600,height:500),

何か案は?

于 2010-05-16T23:05:56.530 に答える
1

私はこれをするだけです。FB.ui({メソッド:'fbml.dialog'、幅:500、高さ:300、 fbml:.....。

于 2010-05-20T09:36:37.243 に答える
1

以前の答えはどれも私のために働いていませんでした。私が見つけた回避策は、次のことを行うことでした。

var uiSize = FB.UIServer.Methods["fbml.dialog"].size;
FB.UIServer.Methods["fbml.dialog"].size = {width:760, height:450};

FB.ui({
    method:'fbml.dialog',
    display: 'popup',                   
    fbml: message
},
    function( response ){
        FB.UIServer.Methods["fbml.dialog"].size = uiSize;
    }
);
于 2010-11-23T10:06:06.253 に答える
0

誰かがアプリケーションリクエストと友達の招待について助けを必要とする場合に備えて、ここにそれに関するFacebookドキュメントがあります:http://developers.facebook.com/docs/reference/dialogs/requests/ そしてあなたが必要とするコードの一部は次のとおりです:

FB.ui({method: 'apprequests', message: 'A request especially for one person.', data: 'tracking information for the user'});
于 2011-08-31T21:16:16.757 に答える
0

display:'dialog'を追加することもでき、正しくサイズ変更されます。

于 2010-06-05T17:24:10.587 に答える
0

これを試して:

    <script>
  var uiSize = FB.UIServer.Methods["fbml.dialog"].size;
FB.UIServer.Methods["fbml.dialog"].size = {width:999};

  var dialog = {
    method: 'fbml.dialog',
    display: 'dialog',
    fbml: '<fb:request-form action="http://apps.facebook.com/xxxxx" method="post" target="_top" invite="true" type="Contest" content="Come and Join this contest!"> <fb:multi-friend-selector showborder="false" max="30" import_external_friends="false" email_invite="false" cols="5" actiontext="Invite your friends!" /></fb:request-form>',
  };
  FB.ui(dialog,function(response) {
        alert("fbDialogDismiss();");
    });
</script>
于 2010-11-28T10:05:12.937 に答える