2011-08-05 2 views
6

저는 PHP를 처음 사용하여 페이스 북의 로그인 시스템을 이해하는 데 어려움을 겪었습니다.facebook php-sdk (v.3.0.0)을 사용하여 세션 및 쿠키와 함께 페이스 북 로그인 통합

github (https://github.com/facebook/php-sdk/)에서 세 개의 src/파일을 다운로드했습니다. 나는 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> 

은에 관해서 내가 가지고있는 질문은 다음과 같습니다 스타일링의 일부를 제거하여 파일에 익숙하지 않은 사람들을 위해

, 여기, example.php의 복사본입니다

1) 쿠키는 어떻게됩니까? - 브라우저를 다시 연 후에 사용자가 내 웹 사이트에 로그인 할 수있게하려고합니다.

2) 사용자 검증/등록, 세션 시작, 쿠키 저장, 사용자의 fb 사용자 ID, fb 이름 가져 오기 등이 example.php 파일에서 필요한 최소값은 얼마입니까? fb 그림 및 fb 친구 목록?

3) src/files에는 하나의 'fb_ca_chain_bundle.crt 파일'이 있으며, 그러한 파일에 대해 전혀 익숙하지 않아 필요한 경우 확실하지 않습니다. 그 목적은 무엇입니까?

4) 라인 $naitik = $facebook->api('/naitik');은이 사람의 사용자 이름 "naitik"입니다. 따라서 facebook.com/naitik을 입력하면 그의 공개 프로필이 표시됩니까? "/ naitik"을 "/ me"로 대체하면 페이스 북에 로그인 한 사람의 공개 프로필을 얻을 수 있습니까?

5) 액세스 토큰을 얻으려면 어떻게해야합니까? 내 코드에서 어떻게 사용합니까?

6) 사용자를위한 세션과 브라우저를 다시 열어 사용자가 로그인 할 수 있도록 쿠키를 만들면 세션과 쿠키에 정확히 무엇을 저장해야합니까?

많은 질문이지만, 많은 튜토리얼을 온라인에서 살펴 보았습니다. 그 중 아무도 Github PHP-SDK 파일에 다시 링크하기 때문에 설명이 잘되어 있지 않습니다. 또한 대부분의 PHP-SDK 이전 버전에 대해 설명합니다. 질문이 있으면 도움을 청합니다.

+0

[Thinkdiff] (http://thinkdiff.net/)에는 주제에 대한 다소간의 최신 튜토리얼이 있습니다. –

답변

7

질문에 답변 하시겠습니까?

1) 쿠키는 어떻습니까?

페이스 북 초기화에 매개 변수를 추가하기 만하면됩니다. I가 ....

회원님이 원하는 모든이 예제에이 example.php 파일에서 얻을 필요 최소한의 무엇 다음

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

2)로 변경 . 코드의 상단 부분은 사용자를 연결하고 유효성을 검사하는 방법을 보여줍니다. 후반부는 기본 세부 정보와 naitik의 세부 정보를 덤프합니다. 나머지는 더보아야합니다. SRC에/파일에서

3),

이 파일의 목적은 CURL 오류 (60)에 대한 해결 방법을 제공하는 것입니다 ', 파일 fb_ca_chain_bundle.crt'하나있다.이 읽기 :

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"로 대체하면 페이스 북에 로그인 한 사람의 공개 프로필을 얻을 수 있습니까?

정확히 바로

5) 어떻게 액세스 토큰을받을 수 있나요, 나는 내 코드에서 어떻게 사용합니까?

$ facebook-> getAccessToken();

메서드 호출 중 일부를 추가했지만 모든 것이 필요하지는 않습니다.

6) 사용자를위한 세션과 브라우저를 다시 열어 사용자가 로그인 할 수 있도록 쿠키를 만들면 내 세션과 쿠키에 정확히 무엇을 저장해야합니까?

Facebook SDk가이를 처리 할 것입니다. 앱에 필요한 사용자에 대한 추가 정보를 저장하면됩니다.

+0

좋은 답변입니다. 자동으로 사용자를 기록하는 방법에 대한 아이디어가 있습니까? Facebook 응용 프로그램에 유용합니다. –

+0

페이스 북 문서는 액세스 토큰에 대해 "https://graph.facebook.com/oauth/access_token?"에 게시 할 것을 제안합니다. . "client_id =". $ app_id. "& redirect_uri =". urlencode ($ my_url) . "& client_secret =". $ app_secret. "& code =". $ 코드; 따라서 5에서 제안한 위 전화가 권장 전화인지 확실하지 않습니다. – pal4life