0

Facebookアプリケーションを認証するために次のコードを書きましたが、グーグルの代わりに何日も解決しませんでした。問題は、アプリケーションに最初にアクセスしたときに、ユーザーがアプリケーション認証ダイアログを表示するように求められることです。ユーザーがアプリケーションを許可すると、URLが点滅し続けます。ダイアログもアプリケーションも表示されません。ブラウザを閉じた後、はい、正常に動作します。何が問題なのか調べてください。とてもありがたいです。

コード:

$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>");
     }
4

2 に答える 2

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>");      } 
于 2011-10-05T05:01:37.300 に答える
1

使用する:

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

top

于 2011-02-26T17:00:08.340 に答える