よたか2011.03.27 02:39:35
はなまるトーナメントをfacebookに表示させようとしてしていろいろ難しく考えていたんだけど、結局、配布されている「php-sdk」を編集する事にしました。さて、ここで問題なのは、iframeにするか、FBMLにするかということ。
通常ならば「iframe」で問題ないのだけど、左右のサイズの事とか、スクロールの事を考えると今ひとつ踏み切れない…。
たぶん、最近フレーム処理のページを作ってないからだというのも多少なりともあるとは思いますが。
と、言うわけで非推奨である事を踏まえて、FBMLで書き出す事にしました。
facebookページの主流(?)であった、スタティックFBMLは、今月中にも使えなくなるとか言われているようですが、FBML自体が使えなくなるわけではない様なので、たぶん大丈夫なのかな?
正直、FBJSがあまりにも解らないので、どこまで作れるのかはいささか疑問はあるけど、バックヤードでPHP使えるみたいなのでそんなに心配はしてないんです。
むしろ、FBJSの挙動が引っかかる感じ(?)がたまにあるので、こちらの方がスマートかも知れないと思ってるんですよ。
さて、まずこちらからアプリを登録するのですが、
facebookアプリ登録
具体的な方法については、こちらで配布されているPDFファイルを参考にされた方がよろしいかと思います。
iframeテンプレート実用サンプル集
ただ、私の場合は、4ページのIFrame or FBML となっている所は、すべてFBMLにチェックを入れました。
今回は、トーナメント表をそのまま表示させるためにFBMLを指定しましたが、facebook用にサイズをあわせてページを作る場合は「IFrame」で一向に構いません。
今回は「FBML」を指定しましたので、余計なHTMLタグを書き出さない用に注意します。
例えば、html,body,headなど、scriptもエラーが出る物があるようです。
なにはともあれ、エラーが出たらその都度修正して行くしかないかと思います。
アプリを登録すると「マイアプリ」のアプリのページの一番下に「サンプルコードをつかって、今すぐスタート!」のリンクが表示されます。
ココのリンクをクリックして、指示通りに「ターミナル」からphp-sdkをダウンロードして各ファイルをセットアップしてください。
指示通り、セットアップして接続すると「アクセスしたユーザー」の情報やら、変数の情報やらが表示されます。
ちょっとエラーっぽいけど、コレが表示されれば、とりあえず動いていると言う事ですね。
さて、設定したIndex.phpを編集してnucleusに接続させます。
私の場合は、こんな感じ。
60行目以下を全て削除し、
59行目の「?>」の前に以下のデータを入力します。
$CONF = array();
$CONF['Self'] = 'index.php';
include('../config.php');//設定ファイルへのパス
selectBlog('hogehoge');//表示させたいブログの短縮名
selectSkin('FBML');//アプリ用に作成したスキン
selector();
つまり、60行目以降に書いてあるhtmlソースの代わりにこれを入れるわけですね。
そして、肝心のスキンの設定です。
とりあえず準備するのは「メインの目次ページ」と「個別アイテムページ」です。
まず、メインの目次ページはこちら
<ul>
<%blog(templat_name,20)%>
</ul>
<p id='ikumodoru'>
<span class='mae'><%prevlink(前の20件,20)%></span>
<span class='tugi'><%nextlink(次の20件,20,yes)%></span>
</p>
そして、個別アイテムページはこちら
<h2><%itemtitle%></h2>
<%item(templat_name)%>
実際は、cssとか、プラグインとか入れているので、もう少し複雑になると思います。
リンクはfacebookのなかで処理してくれるので、気にする必要なないみたいです。
そしてここまで出来たのが、このページ
はなまるトーナメント
アプリの登録しないと行けないとか言われるかもしれませんが、
一応見てもらえるとおもいます。
もし興味を持ってもらえたら、facebookでも、こちらでもいいのでメッセージを送ってくださいまし。