2011-12-18 18 views
0

私の古いfacebookアプリケーションは最新のphp sdkにアップデートする必要があります。 が別の質問で指摘されています。私の次の問題は、最新のphp sdkで動作するようになっています。3.1.1PHP SDK(v.3.1.1)

私は最新のphp sdk ieに付属の例を使用しています。 with_js_sdk.php

アプリケーションにアクセスする許可が与えられてからリロードするのではなく、ユーザー をアプリケーションに持ってくると、ユーザーは再びログインに戻ります。ユーザーがアプリケーション コンポーネントにリダイレクトされるようにするにはどうすればよいですか。注意:私はそれがwindow.location.reload()を呼び出す警告を持っています。しかし、それは彼が次のコードはあるアプリケーション

を追加 後にユーザーが表示されません。

<?php 

require 'facebook.php'; 

$appCanvasPage = 'https://apps.facebook.com/myapp/'; 
$app_id = ""; 
$app_secret = ""; 


$facebook = new Facebook(array(
'appId' => $app_id, 
'secret' => $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; 
    } 
} 

echo "user=".$user."\n"; 


?> 
<!DOCTYPE html> 
<html xmlns:fb="http://www.facebook.com/2008/fbml"> 
    <body> 
    <?php if ($user) { ?> 


    <h2> THIS IS MY APP </h2>  

    <?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) { 
      alert(At reload); 
      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> 

答えて

1

私はFacebookを利用していたSDKを使用することなく、簡単な解決策を見つけました。

リンクは次のとおりです。https://developers.facebook.com/docs/appsonfacebook/tutorial/

<?php 

    $app_id = "YOUR_APP_ID"; 

    $canvas_page = "YOUR_CANVAS_PAGE_URL"; 

    $auth_url = "https://www.facebook.com/dialog/oauth?client_id=" 
      . $app_id . "&redirect_uri=" . urlencode($canvas_page); 

    $signed_request = $_REQUEST["signed_request"]; 

    list($encoded_sig, $payload) = explode('.', $signed_request, 2); 

    $data = json_decode(base64_decode(strtr($payload, '-_', '+/')), true); 

    if (empty($data["user_id"])) { 
      echo("<script> top.location.href='" . $auth_url . "'</script>"); 
    } else { 
      echo ("Welcome User: " . $data["user_id"]); 
    } 
?> 

はトリックをしました。

David j。

関連する問題