2012-02-06 19 views
0

すべて、 私はwordpressを使用しており、facebookで私のユーザログインをしようとしています。 Wordpressのための私のheader.phpの中で、私は次のコードを持っている:その後、私はWordpressの中で、実際にページを作成していたとき、私は、次のコードを持っている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); 
} 
関連する問題