2011-02-25 12 views
0

私は以下のスクリプトを書いており、ユーザーのセッションをチェックし、それに従ってログイン/ログアウトリンクを表示します。スクリプトは機能しますが、問題はコールバックURLを設定する方法がわからないため、FBアプリの設定ページでフィールドがない(または少なくとも私は見つからない)何か案は?Facebook PHP SDK、コールバックURLの定義方法

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

$session = $facebook->getSession(); 

$me = null; 

if ($session) { 
    try { 
    $uid = $facebook->getUser(); 
    $me = $facebook->api('/me'); 
    } catch (FacebookApiException $e) { 
    error_log($e); 
    } 
} 

?> 
<?php if ($me): ?> 
    <a href="<?php echo $facebook->getLogoutUrl(); ?>">Logout</a> 
<?php else: ?> 
    <a href="<?php echo $facebook->getLoginUrl(array('req_perms'=>"email,publish_stream")); ?>">Login</a> 
<?php endif; ?> 

答えて

3

パラメータは「次へ」と呼ばれます。あなたは、ユーザがログインした後に、サーバーに着陸したいどこに

<a href="<?php echo $facebook->getLoginUrl(array('req_perms'=>"email,publish_stream",'next'=>"welcome.html")); ?>">Login</a> 

変更「のwelcome.html」

+0

代わりnext''で使用されています。 https://developers.facebook.com/docs/reference/php/facebook-getLoginUrl/ – Shahid

-1

FacebookのPHP SDKのファイルに、ライン418

について:だから、このようにそれを行います。最新のSDK `redirect_uri`で
public function getLoginUrl($params=array()) { 
    $currentUrl = $this->getCurrentUrl(); 
    return $this->getUrl(
     'www', 
     'login.php', 
     array_merge(array(
     'api_key'   => $this->getAppId(), 
     'cancel_url'  => $currentUrl, 
     'display'   => 'page', 
     'fbconnect'  => 1, 
     'next'   => $currentUrl, 
     'return_session' => 1, 
     'session_version' => 3, 
     'v'    => '1.0', 
    ), $params) 
    ); 
    } 

と445

public function getLogoutUrl($params=array()) { 
    return $this->getUrl(
     'www', 
     'logout.php', 
     array_merge(array(
     'next'   => 'http://yoururl.com/?logout=1', // or $currentUrl the same page who make the callback , and destroy session if it. 
     'access_token' => $this->getAccessToken(), 
    ), $params) 
    ); 
    } 
+0

これらのコードで '$ params = array()'と 'array_merge'の目的は何ですか? – ianace

関連する問題