フェイスブックアプリを作るのは初めてです。iframe アプリを作成しました (つまり、アプリの登録時に「キャンバス タイプ」として「iframe」を選択しました)。アプリのサイドバー (約 200px の幅) にマルチ フレンド セレクター フォームがあるこの状況があります。
スクリーンショット:
そのフォームを生成するための関連コードは次のとおりです (アプリ レイアウトの一部であるhtmlタグを除く)。
<html xmlns:fb="http://www.facebook.com/2008/fbml" xmlns="http://www.w3.org/1999/xhtml">
// some layout markup here for the whole app....
<div id="sidebar"> // place a condensed friend selector here
<fb:serverFbml>
<script type="text/fbml">
<fb:fbml>
<fb:request-form action="invite_url" content="
Hey! a form!" invite="true" method="post" type="sample">
<fb:multi-friend-selector actiontext="Invite your friends to check out this site" condensed="true" exclude_ids="" max="20" showborder="true" style="width: 300px;" />
<fb:request-form-submit label="Send" />
</fb:request-form>
</fb:fbml>
</script>
</fb:serverFbml>
</div>
[招待状を送信] をクリックすると、確認ダイアログ ボックスが表示されますが、メイン アプリが読み込まれる親 iframe ではなく、マルチフレンド セレクターが配置されている iframe 内に表示されます (したがって、レイアウトが壊れます)。
スクリーンショット:
次のコードを試しました (ここでfb:serverFbmlタグを削除します):
<fb:fbml>
<fb:share-button></fb:share-button>
<fb:request-form type="my_app" method="post" invite="true" content="Form content" action="/action">
<fb:multi-friend-selector actiontext="Invite your friends to check out this site" condensed="true" exclude_ids="" max="20" showborder="true" style="width: 300px;"></fb:multi-friend-selector>
<fb:request-form-submit label="Send" />
</fb:request-form>
</fb:fbml>
ここでは、共有ボタンが表示されていますが、セレクタ フォームは空です ( fb:multi-friend-selectorタグ内には何もレンダリングされていません)。
ここで説明されているように、FB 初期化コードを使用しています:リンク テキスト
この問題を解決するにはどうすればよいですか? 私のfb APIコードに欠けているものはありますか?