2011-10-26 16 views
1

私は、ユーザーが自分のFacebookアカウントでログインできるアプリケーションを作った。彼らは自分のアプリケーションに自分のFacebookアカウントの特定の詳細にアクセスする権限を与えたいかどうか尋ねられたときに、「許可」をクリックするとすべてが見つかる。ただし、「拒否」をクリックすると、ループを繰り返して、アプリケーションに許可を与えるかどうかを尋ね続けます。それが連続してループして同じ質問をするのではなく、「拒否する」をクリックすると、別のページに移動する方法を教えてください。フェイスブック認証の拒否

私はドキュメントを見てみましたが、私が何をしているのか分からないようです。

許可を求める前に、次が実行され、私は「許可しない」をクリックした場合、私は、「許可」をクリックするまで、そして、それだけで以下のコードをループし続ける:

<?php 

session_start(); 

require("facebook.php"); 

$facebook = new Facebook(array(
    'appId' => 'app id goes here', 
    'secret' => 'secret goes here', 
    'cookie' => true 
)); 

$session = $facebook->getSession(); 

if(!empty($session)) { 

    try{ 

     $uid = $facebook->getUser(); 
     $user = $facebook->api('/me'); 

     $_SESSION['returned'] = array("id" => $uid, "name" => $user["name"], "access_token" => $session['access_token']); 

     header('Location: returned.php'); 
     exit; 

    } catch (Exception $e) { 

     echo "something is wrong"; 
     exit; 

    } 

} else { 

    $login_url = $facebook->getLoginUrl(); 
    header("Location: ".$login_url); 

} 
+0

を進める前に存在している... –

+0

@対話のソリューションをチェックしてください。それが動作しない場合は、私たちがあなたを助けることができるように、Facebookの認証を扱っているスクリプト、具体的にここにあなたのコードのいくつかを入れてください:) –

+0

@DroidUser、更新された質問を参照してください、それはコードが含まれています。 – oshirowanen

答えて

3

に従ってapiあなたが提供したページ:http://YOUR_URL?error_reason=user_denied&error=access_denied&error_description=The+user+denied+your+requestにユーザをリダイレクトします。成功した場合に加えて、あなたがURLパラメータ「エラー」 を確認するためにリダイレクトページで

あなたは確認する必要がありurlパラメータ「コード」があるはずの認証を解除URL

if (isset($_GET['error'])) { 
    header('Location: URL_TO_GO_IF_FAILED'); 
} else { 
    // ... whatever you were doing before 
} 
+0

更新された質問をご覧ください。現在のコードを含みます。 – oshirowanen

+0

私はあなたの提案を 'else'の直前の既存のコードに追加しようとしましたが、 'if'を' elseif'に変更しました。 – oshirowanen

+0

それは働いて、私はfacebook.phpファイルのURLを追加する必要がありました。 – oshirowanen

関連する問題