facebookアプリで使うのダイアログって別にダイアログじゃなくてもiframeでも使えるよ

ちゃんとしたFacebookアプリ作る時はFacebookのダイアログは嫌でも使わないといけないと思いますが、
Dialogs Overview

ダイアログの枠のデザインがアプリにマッチしなかったり、画面設計、画面フロー的にダイアログだとスムーズじゃない事もあると思います。


そんな時の為に、ダイアログはiframeでもpageでも使えるって事も覚えておくといざという時に役立つかもです。
(pageってのはこんな感じで完全にアプリの外に一回出る感じなので、逆に使いどころ難しいかな http://www.facebook.com/dialog/feed?app_id=123050457758183&redirect_uri=http://www.example.com/response/)


iframeだと、こんな感じでアプリ内の任意の場所に埋め込む形で結構使えると思います。
デモ
http://www.fbrell.com/saved/c7e6e26b1fff73497077edd078da2db3


iframeの動的生成はブラウザによって挙動が違ったりしてなんかめんどくさい事が必要なのか知らないですけど、↓のgithubのコメントのあたりを参考にすると大丈夫だと思います。
FacebookのJavaScript SDKの下品なコメントが格好良すぎて惚れた件


一応コード例こんな感じ

<h1>apprequst iframe test</h1>
<iframe src="http://iq148.com/" id="apprequest_iframe" width="600" height="300"></iframe>

<h1>feed iframe test</h1>
<iframe src="http://iq148.com/" id="feed_iframe" width="600" height="300"></iframe>

<h1>send iframe test</h1>
<iframe src="http://iq148.com/" id="send_iframe" width="600" height="300"></iframe>

<script>
//エスケープとか適当にしてくれ
var appid = "app idです。";
var link = "シェアするリンク";
var redirect_uri = "処理後戻り先URL";
var text = "メッセージとか";

FB.login(function(response) {
if(response.authResponse){

document.getElementById('apprequest_iframe').src="https://www.facebook.com/dialog/apprequests?app_id=" + appid + "&message=" + text + "&link=" + link + "&redirect_uri=" + redirect_uri + "&display=iframe&access_token=" + response.authResponse.accessToken;

document.getElementById('feed_iframe').src="https://www.facebook.com/dialog/feed?app_id=" + appid + "&name=" + text + "&link=" + link + "&redirect_uri=" + redirect_uri + "&display=iframe&access_token=" + response.authResponse.accessToken;

document.getElementById('send_iframe').src="https://www.facebook.com/dialog/send?app_id=" + appid + "&name=" + text + "&link=" + link + "&redirect_uri=" + redirect_uri + "&display=iframe&access_token=" + response.authResponse.accessToken;

} else{
alert("not auth...");
}
})
</script>