FB 로그인 버튼을 사용하여 사용자가 로그인 할 수 있도록했습니다. FB 로그인 버튼을 클릭하면 php가 세션을 시작할 수 있도록 fb_redirect.php라는 파일로 사용자가 리디렉션됩니다. fb_redirect 파일에서 Facebook API가 액세스 토큰을 가져 오지 못합니다.
window.fbAsyncInit = function()
{
FB.init({
appId: '12345',
status: true,
cookie: true,
xfbml: true
});
FB.Event.subscribe('auth.login', function(response)
{
window.location = '/fb_redirect.php';
});
};
, 나는 다음과 같은 한 : 파일에 일이 무엇
session_start();
require("model/facebook_api/src/facebook.php");
$facebook = new Facebook(array(
'appId' => '12345',
'secret' => '12345'
));
$access_token = $facebook->getAccessToken();
$facebook->setAccessToken($access_token);
if($access_token != "")
{
$user = $facebook->getUser();
if($user != 0)
{
$user_profile = $facebook->api("/".$user);
$fb_id = $user_profile['id'];
$fb_first_name = $user_profile['first_name'];
$fb_last_name = $user_profile['last_name'];
$fb_email = $user_profile['email'];
$_SESSION['login'] = "true";
}
}
header("Location:index.php");
종류의 혼란이다. 그것은 정말 맞았거나 놓쳤습니다. 이미 FB에 로그인 한 상태에서 FB 로그인 버튼으로 내 사이트에 로그인하려고하면 화면이 나타나서 빨리 사라집니다. 그러나, 그것은 내 사이트에 로그인하지 않습니다.
FB에 로그인하지 않고 내 사이트에 로그인하려고하면 화면이 나타나서 FB에 로그인하라는 메시지가 나타납니다. 팝업 화면에서 FB에 성공적으로 로그인하면 리디렉션이 발생합니다. 그러나 그럴 때 유효한 액세스 토큰이 필요하다는 오류 메시지가 나타납니다. 다른 경우에는 세션을 설정하지 않고 홈 페이지로 리디렉션됩니다. 그래서, 저는 액세스 토큰이 전혀 설정되지 않았다고 추측합니다.
나는 액세스 토큰을 수동으로 설정해야 할 수도 있다는 것을 읽었습니다. 그래서 시도해 보았습니다.
$facebook->setAccessToken($access_token);
하지만 작동하지 않았습니다.
나는 이것을 이해하는 방법을 모르겠다. 어떤 아이디어?