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