Facebook SDK for PHPを使ったFacebookアプリのつくりかた
みなさんお元気ですか?僕は元気です。
さて、PHPでFacebookアプリをつくろうとしたのですが、いざ検索すると古い情報がまぎれていてよーわからん!となったので、自分の情報をさらに混ぜていこうと思います。ふふふ。
1. Facebookアプリを登録する
まずはFacebookの開発者向けサイトに登録します。
なお、登録にはアカウント認証が必要です。
次にAppsにある「新しいアプリを作成する」ボタンよりアプリを登録します。
App Nameだけ入力すればOKです。
2. Facebookアプリの設定を行う
アプリを登録すると基本設定が表示されるはずですので、基本設定を登録していきます。
まずは下記の設定さえすれば大丈夫だと思います(モバイルはまた今度説明します)。
- Namespace:アプリ名(eeyan_shindanとか)
- Sandbox Mode:有効
- Facebook上のアプリ
キャンバスURL:FacebookからアクセスされるURL
(http://example.com/shindan/index.php
とか)
セキュリティで保護されたキャンバスのURL:FacebookからアクセスされるSSLのURL
(https://example.com/shindan/index.php
とか)
キャンバスURLを設定すると、キャンバスページのURLが発行されます。
http://apps.facebook.com/
[Namespaceで設定した文字列]
アプリ完成時には、このページにアクセスすることになります。
ちなみにSandbox Modeを有効にすると、テスト出来るユーザーを絞り込むことができます。 テストユーザーは左側にある「開発者の役割」のテスト担当者から追加できます。
Facebookでの設定はこれくらいです。
3. Facebook謹製のPHP SDKをダウンロード
Facebook PHP SDKのgithubからSDKのファイルをダウンロードします。
githubのページにあるZIPボタンをクリックするとソースがダウンロードできます。
4. キャンバスページ側を作成する
ダウンロードしたSDKの中にあるsrcというフォルダが実際に使用するファイルなのですが、同じ場所にあるexamplesがちょうどいいサンプルになります。
下のコードです。
<?php require '../src/facebook.php'; // アプリのインスタンスを作成(appIdとsecretは適宜置き換えてね) $facebook = new Facebook(array( 'appId' => '344617158898614', 'secret' => '6dc8ac871858b34798bc2488200e503d', )); // User IDを取得 $user = $facebook->getUser(); // User IDがあればFacebookにログインしているとみなす if ($user) { try { // ログインしているユーザーのユーザー情報を取得 $user_profile = $facebook->api('/me'); } catch (FacebookApiException $e) { error_log($e); $user = null; } } // 現在のログイン状況にしたがい、ログインURLもしくはログアウトURLを取得 if ($user) { $logoutUrl = $facebook->getLogoutUrl(); } else { $loginUrl = $facebook->getLoginUrl(); } // たとえばNaitik Shahさんの公開データはこうやって取得します $naitik = $facebook->api('/naitik'); ?> <!doctype html> <html xmlns:fb="http://www.facebook.com/2008/fbml"> <head> <title>php-sdk</title> <style> body { font-family: 'Lucida Grande', Verdana, Arial, sans-serif; } h1 a { text-decoration: none; color: #3b5998; } h1 a:hover { text-decoration: underline; } </style> </head> <body> <h1>php-sdk</h1> <?php if ($user): ?> <a href="<?php echo $logoutUrl; ?>">ログアウト</a> <?php else: ?> <div> <a href="<?php echo $loginUrl; ?>">Facebookにログイン</a> </div> <?php endif ?> <h3>PHP セッション</h3> <pre> <?php print_r($_SESSION); ?> </pre> <?php if ($user): ?> <h3>あなたの情報</h3> <img src="https://graph.facebook.com/<?php echo $user; ?>/picture"> <h3>あなたのUser Object(/me)</h3> <pre> <?php print_r($user_profile); ?> </pre> <?php else: ?> <strong><em>ログインしていません</em> </strong> <?php endif ?> <h3>Naitik公開プロフィール</h3> <img src="https://graph.facebook.com/naitik/picture"> <?php echo $naitik['name']; ?> </body> </html>
このコードとsrcのフォルダをキャンバスURLで指定したパスに配置してください。
あと、appIdとsecretは作成したアプリのものにしておいてください。
キャンバス上で表示されるPHPはこれで完了です。
キャンバスページのURLにアクセスして、ログイン画面が表示されればOKです。
ただこのままだとMVCもなにもないなーという状態なので、次からはCodeIngniterに乗っけていきます。