2012-02-06 3 views
0

전체 저는 wordpress를 사용하고 있으며 facebook으로 내 사용자 로그인을 시도하고 있습니다. 워드 프레스에 대한 내 header.php에서 나는 다음과 같은 코드를 가지고 : 나는 워드 프레스에 실제로 페이지를 만드는거야 그리고Facebook PHP SDK는 사용자 로그인을 허용하지 않습니다.

define('123', '123'); 

//uses the PHP SDK. Download from https://github.com/facebook/php-sdk 
require 'facebook.php'; 

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

$uid = $facebook->getUser(); 
if ($uid) { 
    try { 
     $userInfo = $facebook->api('/' + $uid); 
     $qry = "Select user_id, role from event_details where email_address='$userInfo[email]'"; 
     echo $qry; 
     $result = mysql_query($qry); 
     $resultrows = mysql_num_rows($result); 
     if($resultrows>0){ 
      $resultset = mysql_fetch_array($result); 
      $_SESSION['user_id'] = $resultset['user_id']; 
      $_SESSION['role'] = $resultset['role']; 
      $target = "http://www.website.com/event_choices"; 
      header("Location:". $target); 
     } 
    } catch (FacebookApiException $e) { 
     error_log($e); 
    } 
}else{ 
    echo "not logged into facebook"; 
} 

if ($uid) { 
    $logoutUrl = $facebook->getLogoutUrl(); 
} else { 
    $loginUrl = $facebook->getLoginUrl(array(
    'next'=>'http://www.website.com/event_choices' 
    )); 
} 

을 나는 다음과 같은 코드를 가지고 :이 로그인 버튼을 표시

<?php if ($uid): ?> 
<?php echo "Welcome, ".$uid['first_name']. ".<br />"; ?> 
<a href="<?php echo $logoutUrl; ?>"> 
    <img src="http://static.ak.fbcdn.net/rsrc.php/z2Y31/hash/cxrz4k7j.gif"> 
</a> 
<?php else: ?> 
    <a href="<?php echo $loginUrl; ?>"> 
    <img src="http://static.ak.fbcdn.net/rsrc.php/zB6N8/hash/4li2k73z.gif"> 
    </a> 
<?php endif ?> 

을하지만, 버튼을 클릭 할 때마다 아무 일도 일어나지 않습니다. 소스 코드를 보면 $ loginUrl이 채워지지 않습니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까?

감사합니다.

답변

0

로그인 URL을 생성 할 때 범위를 전달하지 않습니다. 여기에서 모든 응용 프로그램 권한이 전달됩니다. 살펴보기 :

$loginUrl = $facebook->getLoginUrl(
    array(
     'scope'   => 'email,offline_access,publish_stream,user_birthday,user_location,user_work_history,user_about_me,user_hometown', 
     'redirect_uri' => 'http://www.website.com/event_choices' 
    ) 
); 

자세한 내용은 API 참조 here을 참조하십시오.

또한 Facebook에서 작업 할 때 FB에서 출력물을 얻는 것이 중요 할 수 있습니다. 다음과 같이 코드를 래핑하면됩니다.

try { 
    $user = $facebook->getUser(); 
    //you can also put your loginURL generation code here to see if you get an error 
} catch(Exception $o){ 
    print_r($o); 
} 
관련 문제