2011-08-14 24 views
0

どこから行くのですか?これは、sdkで提供されている例のコピー貼り付けとほぼ同じです。私は人々がこのAPIで何かを構築する方法を理解していないのですか?ログインなどのためのプロンプト画面を開くにはどうしたらいいですか? Facebookはこれについて何か言いますか?Facebook APIヘルプ

<?php 

require 'fb_sdk/src/facebook.php'; 

// Create our Application instance (replace this with your appId and secret). 
$facebook = new Facebook(array(
    'appId' => 'APIID', 
    'secret' => 'SECRET', 
)); 

// Get User ID 
$user = $facebook->getUser(); 

// We may or may not have this data based on whether the user is logged in. 
// 
// If we have a $user id here, it means we know the user is logged into 
// Facebook, but we don't know if the access token is valid. An access 
// token is invalid if the user logged out of Facebook. 

if ($user) { 
    try { 
    // Proceed knowing you have a logged in user who's authenticated. 
    $user_profile = $facebook->api('/me'); 
    } catch (FacebookApiException $e) { 
    error_log($e); 
    $user = null; 
    } 
} 

// Permissions requested from the user. 
$par = array(); 
$par['scope'] = 'user_about_me, read_friendlists'; 

// Login or logout url will be needed depending on current user state. 
if ($user) { 
    $logoutUrl = $facebook->getLogoutUrl(); 
} else { 
    $loginUrl = $facebook->getLoginUrl($par); 
} 

?> 

答えて

1

グラフの使用方法については、ユーザ認証here on Facebook Developersを参照してください。

$loginUrl = $facebook->getLoginUrl($par);の場合、変数$loginUrlには認証ダイアログのURLが含まれます。リンクとしてユーザにこの存在またはJavaScriptでリダイレクトを行うのいずれかのほとんどの開発者 - 例えば:

die('<script>top.location.href = "' . $loginUrl . '"</script>'); 

他の代替は、あなたが、彼らは両方のSDKでクッキーを有効している場合(認証するために、XFBMLではJavaScript SDKを使用することです)セッションデータを共有する - 例をhereから:

<?php 

require 'php-sdk/src/facebook.php'; 

$facebook = new Facebook(array(
    'appId' => 'YOUR_APP_ID', 
    'secret' => 'YOUR_APP_SECRET', 
)); 

// See if there is a user from a cookie 
$user = $facebook->getUser(); 

if ($user) { 
    try { 
    // Proceed knowing you have a logged in user who's authenticated. 
    $user_profile = $facebook->api('/me'); 
    } catch (FacebookApiException $e) { 
    echo '<pre>'.htmlspecialchars(print_r($e, true)).'</pre>'; 
    $user = null; 
    } 
} 

?> 
<!DOCTYPE html> 
<html xmlns:fb="http://www.facebook.com/2008/fbml"> 
    <body> 
    <?php if ($user_profile) { ?> 
     Your user profile is 
     <pre>    
     <?php print htmlspecialchars(print_r($user_profile, true)) ?> 
     </pre> 
    <?php } else { ?> 
     <fb:login-button></fb:login-button> 
    <?php } ?> 
    <div id="fb-root"></div> 
    <script>    
     window.fbAsyncInit = function() { 
     FB.init({ 
      appId: '<?php echo $facebook->getAppID() ?>', 
      cookie: true, 
      xfbml: true, 
      oauth: true 
     }); 
     FB.Event.subscribe('auth.login', function(response) { 
      window.location.reload(); 
     }); 
     FB.Event.subscribe('auth.logout', function(response) { 
      window.location.reload(); 
     }); 
     }; 
     (function() { 
     var e = document.createElement('script'); e.async = true; 
     e.src = document.location.protocol + 
      '//connect.facebook.net/en_US/all.js'; 
     document.getElementById('fb-root').appendChild(e); 
     }()); 
    </script> 
    </body> 
</html> 

あなたはまたFB.Loginを使用してJavaScriptで純粋にログインすることができます。

FB.login(function(response) { 
    if (response.authResponse) { 
    console.log('Welcome! Fetching your information.... '); 
    FB.api('/me', function(response) { 
     console.log('Good to see you, ' + response.name + '.'); 
     FB.logout(function(response) { 
     console.log('Logged out.'); 
     }); 
    }); 
    } else { 
    console.log('User cancelled login or did not fully authorize.'); 
    } 
}, {scope: 'user_about_me, read_friendlists'}); 
+0

G ood答えは、@ Jollygoodのように:それのためにAPIを考えないでください。あなたのアプリを手伝ってくれることがあります。あなたのアプリが提供するものを明確にしたら、Facebook APIとの統合点は明確になります。この[サンプル](http://developers.facebook.com/docs/samples/canvas/)アプリを例に取ると、あなたのアプリのアイデアを実感し、Facebookからユーザーのフルネーム、メール、写真、友人が必要であると結論づけますそれに応じてAPIを使用してください。 – ifaour

0

は、これは、コメントに記載されている:

// Login or logout url will be needed depending on current user state. 
if ($user) { 
    $logoutUrl = $facebook->getLogoutUrl(); 
} else { 
    $loginUrl = $facebook->getLoginUrl($par); 
} 

SDKは、あなたがそれを心配する必要はありません、それの世話をします。 ユーザーの詳細は$ user_profileにあります はecho"<pre>"; print_r($user_profile); echo"</pre>";になります。