ActDoor

ActDoor

なんでも日々思ったことを書いていきたいと思っています。主にデジタル家電のことになると思います。
ActDoorとかかっこつけて滑ってる感じがしてダサイねと思ったからダサイ記念日
2010/08/29日にブログ開設

Amebaでブログを始めよう!

いやー。

CSSでつまづいてるとは・・・・



なんというか、「CSSさんお久しぶりっす!」

と挨拶したら

「ふふふ。誰だ君は?」

と返されるがごとく苦戦してた。


paddingとかちょ!!




あと久しぶりに画像いじった。

いや、すごく簡単なんだけどね。。。。。



嫌に疲れた本日でした。


いやー

なんだかんだいって

facebookページには苦戦しっぱなしw


今回はスクロールバーを消す方法


まず、htmlのheadに


<script type="text/javascript" src="http://connect.facebook.net/en_US/all.js"></script>

を書き込みます。できれば<head>直下が望ましい。


次にbodyに


<div id="fb-root"></div>
<script type="text/javascript">
FB.init({
appId : 'アプリケーションID',
status : true, // check login status
cookie : true, // enable cookies
xfbml : true, // parse XFBML
logging : true
});
FB.Canvas.setAutoResize();
</script>

を書き込みます。できればこれも<body>直下が望ましい。


そして、facebookのアプリの管理ページでアプリを選択後

詳細設定=>Canvas Settings

で幅と高さを 可変 にしてください。

言語とかによっては表示が異なるかもしれません。



SSLの設定等大変な課題がたくさんです。。。。





facebookページ イイネ後の処理 別HTMLを表示






 






タイトルわかりづらいw






 






 






ですが続けていきます。






 






今回の学んだものは






 






facebookのページで






 






いいね!






 






を押す前と押した後の変化について書いていきます。






 






 






いいね!が押されたら違うWebページに飛ばしたい。






 






 






まず、facebookのアカウントを持っていて、開発者登録をしていることが前提となります。






さらにiFrameを利用しているので別のPHPが使えるサーバーが必要になります。






 






以上の作業(開発者登録とか)に関してはこちら


を参照ください。






 






 






さて、書いていきます。






 






ファイル構成をは最後に書きます。






 






下のプログラムを index.php として保存してください。






 






<?php

include_once('parse_signed_request.php');



if ( isset($_POST['signed_request']) ) {



$fb_data = parse_signed_request($_POST['signed_request'], 'アプリの秘訣');  //アプリの秘訣に関しては後述参照



if( $fb_data['page']['liked'] ){

include_once('■.html'); //いいねを押した後のページ

}






else {

include_once('▲.html'); //いいねを押す前のページ

}





}

?>






 






 






解説!






 






上から順にね!






 






<?php






はここからPHPのプログラムですよと






 






 







include_once('parse_signed_request.php');

は、facebook自身のプログラムにかかわってくるところなので






専用のものを使います。






以下のソースを parse_signed_request.php で保存してください






<?php






function parse_signed_request($signed_request, $secret) {

list($encoded_sig, $payload) = explode('.', $signed_request, 2);



// decode the data

$sig = base64_url_decode($encoded_sig);

$data = json_decode(base64_url_decode($payload), true);



if (strtoupper($data['algorithm']) !== 'HMAC-SHA256') {

error_log('Unknown algorithm. Expected HMAC-SHA256');

return null;

}



// check sig

$expected_sig = hash_hmac('sha256', $payload, $secret, $raw = true);

if ($sig !== $expected_sig) {

error_log('Bad Signed JSON signature!');

return null;

}



return $data;

}



function base64_url_decode($input) {

return base64_decode(strtr($input, '-_', '+/'));

}






 






?>






 






 






 






 







if ( isset($_POST['signed_request']) ) {






はPOSTでsigned_requestを受け取ったかどうかを調べます。(変数の中に値があるかないか) TRUE なら 以下を実行します






 






 







$fb_data = parse_signed_request($_POST['signed_request'], 'アプリの秘訣');






アプリの秘訣はココ


にアクセスしてアプリを選択後に'アプリの秘訣'と書かれている英数字の羅列をそのままコピー&ペーストしてください。(コピーしたら、プログラムの'アプリの秘訣'の「アプリの秘訣」をけして「''」の間にペーストしてください)






 






 







if( $fb_data['page']['liked'] ){






これはいいね!判定です。 英語だと Liked です。






 






 






 




include_once('■.html'); //いいねを押した後のページ

}






else {

include_once('▲.html'); //いいねを押す前のページ

}




}





■や▲を適当な名前に変えてください。 例)mae.htmlなど






 






 






?>






はPHPのプログラムの終わりだよってこと






 






 






後は






index.php






と同じフォルダの中に







parse_signed_request.php






や■.html、▲.htmlなどを入れておく






 






これらをサーバーにアップロードして






先ほど見たiFrameの設定を変えてやればよい






これ参照







 






 






以上!






 






 






意外と楽!






 






 






問題なのは中身!htmlのほうだね!






情けないことに風邪を拗らせてしまいました。





ああ開発が進まない。やってない。