2011-08-05 13 views
6

私はPHPを初めて使い、facebookログインシステムを理解するのが非常に困難でした。facebook php-sdk(v.3.0.0)を使用したfacebookログインの組み込み、セッションとCookie付き

github(https://github.com/facebook/php-sdk/)から3つのsrc /ファイルをダウンロードしました。私はexample.phpファイルを使って私を始めようとしました。しかし、私はそれをどうすればいいのか分かりません。ここでは、ファイルに慣れていない人のために

は削除スタイリングのいくつかと、example.phpのコピーである:ここで

require '../src/facebook.php'; 
$facebook = new Facebook(array(
    'appId' => '...', 
    'secret' => '...', 
)); 
$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(); 
} 
$naitik = $facebook->api('/naitik'); 
?> 
<!doctype html> 
<html xmlns:fb="http://www.facebook.com/2008/fbml"> 
    <body> 
    <?php if ($user): ?> 
     <a href="<?php echo $logoutUrl; ?>">Logout</a> 
    <?php else: ?> 
     <div> 
     Login using OAuth 2.0 handled by the PHP SDK: 
     <a href="<?php echo $loginUrl; ?>">Login with Facebook</a> 
     </div> 
    <?php endif ?> 

    <h3>PHP Session</h3> 
    <pre><?php print_r($_SESSION); ?></pre> 

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

     <h3>Your User Object (/me)</h3> 
     <pre><?php print_r($user_profile); ?></pre> 
    <?php else: ?> 
     <strong><em>You are not Connected.</em></strong> 
    <?php endif ?> 

    <h3>Public profile of Naitik</h3> 
    <img src="https://graph.facebook.com/naitik/picture"> 
    <?php echo $naitik['name']; ?> 
    </body> 
</html> 

は、私はそれに関して持っている質問は以下のとおりです。

1)クッキーはどうですか? - ブラウザを再起動して、ユーザが自分のウェブサイトにログインできるようにします。

2)ユーザーの検証/登録、セッションの開始、セッションのクッキーへの保存、ユーザーのfbユーザーIDの取得、fb名の取得などのために、このexample.phpファイルから抜け出すために最低限必要なものは何ですか? fbの画像、fbの友達のリスト?

3)src/filesには1つの 'fb_ca_chain_bundle.crtファイル'がありますが、そのようなファイルには全く慣れていませんし、必要であればわかりません。その目的は何ですか?

4)$naitik = $facebook->api('/naitik');という行は、このユーザーのユーザー名である「naitik」です。facebook.com/naitikと入力すると、公開プロフィールが表示されますか? "/ naitik"を "/ me"に置き換えて、facebookにログインした人の公開プロフィールを取得しますか?

5)アクセストークンを取得するにはどうすればよいですか?コード内でどのように使用しますか?

6)ユーザーのセッションを作成し、ブラウザを開いた後にユーザーがログインするようにCookieを作成すると、セッションとCookieに正確に格納する内容は何ですか?

多くの質問がありますが、私は多くのチュートリアルをオンラインで見てきましたが、Github PHP-SDKファイルにリンクしているため、説明していない人がほとんどです。さらに、それらのほとんどはPHP-SDKの以前のバージョンを説明しています。 質問があれば、助けてください。

+0

[Thinkdiff](http://thinkdiff.net/)には、この件に関する多かれ少なかれ最新のチュートリアルがあります。 –

答えて

7

質問にお答えします

1)クッキーはどうですか?

Facebook初期化にパラメータを追加するだけです。私はこのexample.phpファイルから取得する必要が最低限である何)以下

$facebook = new Facebook(array(
    'appId' => '...', 
    'secret' => '...', 
    'cookie' => true, 
)); 

2に変更し ....

ないあなたが望むすべてのものは、この例です。コードの上半分は、ユーザーの接続と検証方法を示しています。後半は基本的な詳細とナイトティックの詳細をダンプするだけです。残りの部分については、さらに見る必要があります。 SRC /ファイルで

3)、1がある「ファイルfb_ca_chain_bundle.crtは、」

このファイルの目的は、CURLエラー60のための回避策を提供することです。これを読む:

http://www.takwing.idv.hk/blog/2011/php-sdk-demystified-%E2%80%93-how-curl-error-60-is-handled/

4)ライン$ naitik = $ facebook-> API( '/ naitik');このユーザーのユーザー名は "naitik"なので、facebook.com/naitikと入力すると公開プロフィールが表示されます。 "/ naitik"を "/ me"に置き換えて、facebookにログインした人の公開プロフィールを取得しますか?

ちょうど右

5)どのようにしてアクセストークンを取得するか、そしてどのように私は私のコードでそれを使うのですか?

$ facebook-> getAccessToken();

メソッド呼び出しのいくつかを追加しますが、すべてではありません。

6)ユーザーのセッションを作成し、ブラウザを開いた後にユーザーがログインするようにCookieを作成すると、セッションとCookieに正確に格納する内容は何ですか?

Facebook SDkがこれを担当します。あなたは、あなたのアプリケーションが必要とするユーザーについての何らかの追加情報を保存するだけで済みます。

+0

偉大な答え。どのようにユーザーを自動的にログインさせるかに関する考え方は?これは、Facebookアプリケーションに役立ちます。 –

+0

Facebookのドキュメントでは、アクセストークンの場合、 "https://graph.facebook.com/oauth/access_token?" 。 "client_id ="。 $ app_id。 "&redirect_uri =" urlencode($ my_url) 。 "&client_secret =" $ app_secret。 "&code =" $ code;あなたが5で提案した上記の呼び出しが推奨されているかどうかは分かりません。 – pal4life

関連する問題