PHPで作るfacebookアプリサンプル

先日、休日にfacebookアプリのサンプルを作ってみたので、サンプルの作り方を紹介。

facebookでコンテンツを作るには、『facebookページ』や『facebookモバイル』、『facebookアプリ』などがある。

今回、PHPで『facebookアプリ』を作成する方法を書いてみる。

1.用意するもの

・facebookアカウント

facebookのユーザーのみがアプリを作成出来る

・サーバー(webサーバー、必要であればDB)

アプリが動くのは、facebook上ではなく自前の環境になる

2.用意したWebサーバーに、facebookアプリを動かすディレクトリを作成

「ドキュメントルート/xxxx/ 」など、webの公開ディレクトリであればどこでもOK。

あとの記載で分かるけど、『facebookアプリ」ってwebアプリのこと

3.アプリを登録

・アプリ名称登録

facebookにログインして、「https://developers.facebook.com/apps」にアクセスする。

右上の「Create New App」をクリックすると、以下のような画面が出る。

ここでアプリケーションの名前を登録する。

※アプリの開発をするには、「携帯番号」か「クレジットカード」認証が必要。この画面でどちらかを入力します。

アプリ名称登録

・セキュリティ認証

下の画面にて、表示されている文字にてセキュリティ認証を行う

セキュリティ認証

4.アプリの詳細設定

下の画面が表示されるので、アプリの詳細情報を入力する。

各項目の説明は以下の通り。

アプリの詳細設定

・App ID、App Secret

facebookアプリから、facebookライブラリを使うための認証に利用する。

後述するPHPのコード内に記載する。

・App Display Name

これから作成するアプリの名称。

facebookのホームの左側にアプリの一覧が表示される領域がある。そこに表示される名称。

・App Namespace

これは、アプリのURLなどに使われる。

・Contact Email

アプリ開発者のEメールアドレス

・App Domain

アプリのドメイン。

「1.」で用意したサーバーのドメイン

・Category

アプリが属するカテゴリー。

アプリがどのようなコンテンツかのための登録。

5.アプリが動くURLを入力

・App on Facebook

今回はこれを選ぶ。

実際のアプリケーションは自身のサーバー内で動くけれど、facebook内で動いているように見える。

インラインフレームの形となる。

・Canvas URL

「2.」で作成した領域のURLを記載

・Secure Canvas URL

SSLで動作する場合、SSL領域のURL記載

・Canvas Page

自動で記載される。これが、アプリのURLとなる。

ここまでで、facebookでの設定は終わり。

「変更を保存」を押して保存する。

今度は実際に動くアプリ側の設定

6.facebookライブラリをダウンロード

・「https://developers.facebook.com/docs/」にアクセスし、「PHP SDK」をクリック

PHP SDK

・「Github」のfacebook/php-sdkページに遷移するので、「Downloads」よりライブラリ一式をダウンロード

※このページには、ライブラリを用いて動くサンプルコードが記載されているので参考に出来る。

7.ダウンロードしたファイルを解答し、ライブラリを「2.」で作成した領域に配置

・「src」というフォルダがあるのでそれを配置

「ドキュメントルート/xxxx/src 」のような感じ

8.facebookアプリを動かす

・「index.php」というファイルを作成し、以下のコードを貼りつけて、「ドキュメントルート/xxxx/」に置く

<?php
require './src/facebook.php';
$facebook = new Facebook(array('appId' => 'App IDを記載',
                              'secret' => 'App Secretを記載',
                              'cookie' => true,
                        ));

$user = $facebook->getUser();

if ($user) {
  try {

    $user_profile = $facebook->api('/me');
  } catch (FacebookApiException $e) {
    error_log($e);
    $user = null;
  }
}

if ($user) {
  $logoutUrl = $facebook->getLogoutUrl();
} else {
  $loginUrl = $facebook->getLoginUrl();
}

?>

<!doctype html>
<html>
  <head>
    <title>moritaro test app</title>
  </head>
  <body>
    <h1>moritaro test app</h1>

    <?php if ($user): ?>
      <a href="<?php echo $logoutUrl; ?>">Logout</a>
    <?php else: ?>
      <div>
        <a href="<?php echo $loginUrl; ?>">Login with Facebook</a>
      </div>
    <?php endif ?>

    <?php if ($user): ?>
      <h3>ユーザー画像</h3>
      <img src="https://graph.facebook.com/ echo $user; ?>/picture">

      <h3>ユーザー情報(object) (/me)</h3>
      <pre><?php print_r($user_profile); ?></pre>
    <?php else: ?>
      <strong>no data</strong>
    <?php endif ?>
  </body>
</html>

・アプリ「http://apps.facebook.com/xxxx/」にアクセス

アクセスしたユーザーのプロフィール情報が表示されているはず。

自身でアクセスしている場合、facebookのプロフィール画面の情報が出る。

moritarotest

このように、facebookアプリは、自身が用意したサーバー上で動くアプリケーションで、

facebookの認証・ライブラリを利用して、facebook内の様々な情報にアクセス出来る。

Webアプリ・コンテンツ開発を行っている人なら、全然難しくない。

単純にfacebookのフレーム内に、いつも作ってるアプリが入るだけ。

あとは、アイデアとfacebookデータを駆使してアプリを作ればいい。

まあ、アイデアが一番難しいけどねw

【参考にさせていただいたサイト】

Facebookアプリを開発してみよう(http://socialmediaexperience.jp/2638)

facebook アプリの作り方・PHP 編(2010 年 10 月版)

(http://d.hatena.ne.jp/ramyana/20101012/1286897340)