는이 일을 내가 발견 한 가장 좋은 방법은 API 호출을 만들려고하는 것입니다 로그인 한 사용자 ID, 액세스 토큰, 이름 및 기타 기본 사항 (예 : $ facebook-> getUser() 또는 $ facebook-> getSession())에 액세스 할 수 있습니다. 그렇지 않으면 FacebookApiException을 발견하면 사용자가 로그인하지 않았으며 사용자를 리디렉션하여 액세스 토큰을 얻어야합니다. 가장 간단한 방법은 $ facebook-에 의해 반환 된 URL로 리디렉션됩니다> getLoginUrl() (http://github.com/facebook/php-sdk/blob/master/src/facebook.php 라인 322) 당신이 필요한 권한에 전달할 수 있습니다
$facebook->getLoginUrl(
array('req_params' => 'email,publish_stream',
'next' => 'http://www.redirct-upon-login.com',
'cancel' => 'http://www.redirect-if-user-clicks-cancel'));
당신은 (자바 스크립트에서 같은 일을 기본적으로 할 수있는 I 선호하는 팝업 대화 상자/창이 리디렉션 대신에 있음) :
FB.login(function(response) {
if (response.session) {
if (response.perms.indexOf('publish_stream') != -1) {
//User has logged in and given us publish_stream permissions
);
else {
//User has logged in but not given us publish_stream
}
}
else {
//User is not logged in
}, {perms:'offline_access,publish_stream'});
예제에 대한 다른 질문에 대답하십시오.php를 사용하면 로그인 한 사용자가 로그인하지 않은 경우에만 로그인 버튼을 표시해야합니다. 그렇지 않으면 로그 아웃 버튼이 표시됩니다.
리디렉션과 관련하여 기본적으로 OAuth는 제 3자가 사용자를 대신하여 조치 (예 : 사용자의 벽에 앱 게시)를 취하도록 허용하는 목적에 부합하는 방법입니다. Facebook은 사용자가 자신의 신원을 증명할 필요가 있도록 조치를 취하기 위해 타사 앱을 승인해야합니다 (그렇지 않으면 사용자를 가장 할 수 있음). 페이스 북은 당신의 앱 (이 때문에 페이스 북의 사이트로의 리다이렉트)이 아니라는 것을 요구하는 사람 일 필요가있다. 왜냐하면 당신의 앱이 단지 사용자를 위해 말할 수 있다면 매우 안전하지 않을 것이기 때문이다. 나는 동의 할 것이고 페이스 북의 문서는 이것을 조금이라도 도움이되지 않는다.