ユーザーがコンテストに参加した後に友達をアプリに招待できるようにする必要があるiframeFacebookアプリケーション(Facebookの新しいJavaScript APIを使用)があります。ページのdivに次のマークアップがあります(アプリケーション名とCanvas Urlが編集されています)。
<fb:serverFbml>
<fb:request-form
method="POST"
invite="true"
type="{Name of My Application}"
content='Your text goes here. %3Cfb%3Areq-choice%20url%3D%{a url-encoded link to my Canvas URL}"/>'
label="Authorize My Application">
<fb:multi-friend-selector showborder="false" actiontext="Invite your friends to use My Application.">
</fb:multi-friend-selector>
</fb:request-form>
</fb:serverFbml>
私の理解では、XFBML / iframeアプリでFBMLタグを使用する必要がある場合は、それらをfb:serverFbml要素にドロップするだけで、Facebookがそれを処理します。案の定、私の第一印象は間違っているようです。フォームにドロップする代わりに、fbmlが変更されていないように見える空の白いボックスが表示されます。
このアプリケーションの設計では、(おそらく間違って)ユーザーを認証して友達を招待する必要がないことを前提としています。これを達成する方法はありますか、それとも最初にログインするように要求する必要がありますか?Facebookのドキュメントは(もちろん)これについて曖昧です。
編集:要求された私のFB.init():
$("body").prepend("<div id=\"fb-root\"></div>");
FB.init({
apiKey: "{My apiKey is here}",
appId: "{My appId is here}",
status: true,
cookie: true,
xfbml: true
});