チップス

facebook お友達の写真一覧を作る


facebookアプリを作ってみよう!! という事で
「facebookのお友達の顔写真を一覧表示して、オンマウスで名前を表示。クリックでお友達のページを別窓表示する」
という基本的なアプリを作りました。

こんな簡単なプログラムですが2日もかかってしまいました。公式ドキュメントを先に読まずに思いつきで検索しながら作ったのが、無駄に時間がかかった理由です。 ^^; プログラミングの前にしっかりドキュメントを読む!!大切な事ですね。

簡単なプログラムを作って全体的な流れをつかんでおけば ajax を使ったりして凝ったアプリも作れると思います。

facebookアプリをphpで作るので、Facebook PHP SDK をダウンロードします。
srcディレクトリ内の base_facebook.php、facebook.phpとfb_ca_chain_bundle.crtをプログラムを作るディレクトリにコピーして使えるようにしておきます。

今回のポイントは $facebook->api('me/friends&fields=id,name,username,picture[&type=normal])で欲しいフィールドを指定できる事ですね。picture&type= ですが、type を指定すると画像のサイズを指定できます。サポートしているtypeはsquare (50x50)、small (横50pixels、高さは可変)、large(横およそ200px、高さは可変)の3種類です。

アプリケーションを登録していない時の処理で $facebook->getLoginUrl() を使用しますが、引数の redirect_uri は facebook DEVELOPERSのアプリの基本設定 ページタブのPage Tab Edit URL:で指定した URL にしないとfacebookのフレーム枠を保持できないようです。

 "あなたの App ID",
        'secret' => "あなたの App Secret",
        'cookie' => true,
        ));
// 顔写真の表示用
$arrayViewFriends = array();

$user_id = $facebook -> getUser();
if ($user_id) {
    try {
        // ユーザー情報取得
        $user_profile = $facebook -> api('me/friends&fields=id,name,username,picture');
        // 出力用 配列にpush
        foreach($user_profile['data'] as $key => $value) {
            $viewcrt = "\""\n";
            array_push($arrayViewFriends, $viewcrt);
        }
    }
    catch(FacebookApiException $e) {
        // エラー発生時
        $login_url = $facebook -> getLoginUrl();
        echo 'ログインしてね。
'; // エラーログの書き出し error_log($e -> getType()); error_log($e -> getMessage()); exit(); } } else { // ログインしていない場合 $login_url = $facebook -> getLoginUrl(array( "redirect_uri" => "https://apps.facebook.com/fbviewfriends/", "scope" => "publish_stream,read_friendlists,publish_checkins,user_checkins", )); echo ""; } ?>


プログラムをちょっと変更してサーバサイドでお友達の写真をアニメーションgifにするプログラムを作ってみたけど、使い道がないのでボツにしました。 ^^;


   チップス