温故知新 linux実践講座

温故知新 linux実践講座

温故知新。linuxを使いこなしてみよう。

ホーム » PHP入門 » facebook お友達の写真一覧を作る

— 広告 —


— 広告 —

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

所要時間 約 3分

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のフレーム枠を保持できないようです。

<?php
session_start();
ini_set('display_errors', 'off');
 
require_once("./facebook.php");
 
$facebook = new Facebook(array('appId' => "あなたの 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 = "<a href=\"http://facebook.com/" . $value['username'] . "\" target=\"_blank\"><img src=\"" . $value['picture'] . "\" alt=\"" . $value['name'] . "\" title=\"" . $value['name'] . "\" ></a>\n";
            array_push($arrayViewFriends, $viewcrt);
        }
    }
    catch(FacebookApiException $e) {
        // エラー発生時
        $login_url = $facebook -> getLoginUrl();
        echo '<a href="' . $login_url . '">ログイン</a>してね。<br />';
        // エラーログの書き出し
        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 "<script type='text/javascript'>top.location.href = '$login_url';</script>";
}
?>
 
<html>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
</head>
<body>
<?php foreach($arrayViewFriends as $value) print $value; ?>
</body></html>


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

-- 広告 -- -- 広告 --

 

  PHP入門 

この記事に関連する記事一覧

アフィリエイトで稼ぐ
プロフィール

ぴよふぁくとりぃです。

職業は自宅でサーバ管理、資格は薬剤師です。
趣味も職業もパソコンラブです。
よろしくね。
連絡先: admin@arakanoj.com
URL: http://piyofactory.com

検索
人気ページ
東京電力予想最大電力(万kW)
twitter
使い方を知れば知るほど楽しく使える Linux。
Linux の基本を覚えてもっともっと楽しいコンピュータの使い方を身につけましょう。