0

PHPでFBログインを作成しようとしています。 私のアプリケーションのURLはhttp:// example.comです。 リダイレクトURLはhttp:// example.com/login/facebook/Facebook SDK PHPログイン "Bad Request"

これは、HTTPでのログインURLを作成するための私のコードです:// example.com:

$fb = new \Facebook\Facebook([ 
     'app_id'  => FB_APP_ID, 
     'app_secret' => FB_APP_SECRET, 
     'default_graph_version' => 'v2.2', 
    ]); 

    $callback = 'http:// example.com/login/facebook/'; 
    $helper = $fb->getRedirectLoginHelper(); 
    $permissions = ['email']; 
    $data['fb_url'] = $helper->getLoginUrl($callback, $permissions); 

私はURLを取得し、ユーザーがクリックしてログインできるリンクに設定します。

これは、リダイレクトURLで私のコード(のhttp:// example.com/login/facebook/):ある

$fb = new Facebook\Facebook([ 
     'app_id' => FB_APP_ID, // Replace {app-id} with your app id 
     'app_secret' => FB_APP_SECRET, 
     'default_graph_version' => 'v2.2', 
    ]); 

    $helper = $fb->getRedirectLoginHelper(); 

    try { 
     $accessToken = $helper->getAccessToken(); 
    } catch(Facebook\Exceptions\FacebookResponseException $e) { 
     // When Graph returns an error 
     echo 'Graph returned an error: ' . $e->getMessage(); 
     exit; 
    } catch(Facebook\Exceptions\FacebookSDKException $e) { 
     // When validation fails or other local issues 
     echo 'Facebook SDK returned an error: ' . $e->getMessage(); 
     exit; 
    } 

    if (! isset($accessToken)) { 
     if ($helper->getError()) { 
      header('HTTP/1.0 401 Unauthorized'); 
      echo "Error: " . $helper->getError() . "\n"; 
      echo "Error Code: " . $helper->getErrorCode() . "\n"; 
      echo "Error Reason: " . $helper->getErrorReason() . "\n"; 
      echo "Error Description: " . $helper->getErrorDescription() . "\n"; 
     } else { 
      header('HTTP/1.0 400 Bad Request'); 
      echo 'Bad request'; 
     } 
     exit; 
    } 

コードは、ここでの例からである - 、FB SDK DOCS が、私はこのエラーを取得します:

Bad request

であり、アクセストークン= NULLである。 エラーはどこで解決できますか?

+0

Javascript fbログインがはるかに簡単です。このPHPのアプローチでは、アプリケーションIDとシークレットを置き換え、両方のファイルの先頭にsession_start()を使用していることを確認してください。また、ここでいくつかの検証を追加することもできます:https://developers.facebook.com/docs/php/howto/example_facebook_login?locale=en_US – profimedica

答えて

0

リダイレクトページでGETパラメータのコードと状態にアクセスできないと思います。リダイレクトページで$ _GETのvar_dumpを実行し、それらが存在するかどうかを確認してください。

関連する問題