2011-02-25 18 views
0

私はFacebookのアプリケーションを認証するために次のコードを書いたが、Googleでは解決しなかった。 問題は、アプリケーションが初めてアクセスされたときに、ユーザーがアプリケーション認証ダイアログに応答することです。ユーザーがアプリケーションを許可すると、URLが点滅し続けます。どちらもダイアログもアプリケーションも表示されません。ブラウザを閉じた後、正常に動作します。あなたは問題が何かを知ることができますか?私は非常に感謝しています。Facebookアプリケーション認証の問題

コード:

$canvas_page = "---my canvas url----"; //i removed actual url here! 
// Create our Application instance (replace this with your appId and secret). 
    $auth_url = "http://www.facebook.com/dialog/oauth?client_id=" 
      . $app_id . "&redirect_uri=" . urlencode($canvas_page) ."&scope=email,read_stream"; 
    $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 'Hello: '.$data["user_id"]; 
    }else{ 
     echo "What is the hell"; 
      echo("<script> location.href='" . $auth_url . "'</script>"); 
    } 

答えて

2

それは

$canvas_page = "---my canvas url----"; //i removed actual url here! // Create our Application instance (replace this with your appId and secret). $auth_url = "http://www.facebook.com/dialog/oauth?client_id="    . $app_id . "&redirect_uri=" . urlencode($canvas_page) ."&scope=email,read_stream";  $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 'Hello: '.$data["user_id"];  }else{   echo "What is the hell";   echo("<script> location.href='" . $auth_url . "'</script>");  } 
1

使用:top

echo("<script> top.location.href='" . $auth_url . "'</script>"); 

+0

それは意味を成していますが動作するはず? –

+1

@Xcoder:何? – ifaour