В моем приложении я включил как google, так и facebook oauth. Сначала я инициировал класс для Google, как этотfacebook google oauth Неоткрытое исключение
$client = new Google_Client();
$client->setApplicationName("urmk google login");
$oauth2 = new Google_Oauth2Service($client);
if (isset($_GET['code'])) {
$client->authenticate($_GET['code']);
$_SESSION['token'] = $client->getAccessToken();
$redirect = 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF'];
header('Location: ' . filter_var($redirect, FILTER_SANITIZE_URL));
return;
}
процесса входа в систему Google работает отлично, и я могу получить информацию о пользователе тоже. Но Тогда я интегрированный facebook OAuth
FacebookSession::setDefaultApplication('APP_ID', 'APP_SECRET');
$helper = new FacebookRedirectLoginHelper('http://example.com/');
$loginUrl = $helper->getLoginUrl();
try {
$session = $helper->getSessionFromRedirect();
} catch(FacebookRequestException $ex) {
// When Facebook returns an error
} catch(\Exception $ex) {
// When validation fails or other local issues
}
if ($session) {
// Logged in
$user = $facebook->getUser();
if ($user) {
try {
$user_profile = $facebook->api('/me');
} catch (FacebookApiException $e) {
error_log($e);
$user = null;
}
}
if ($user) {
$logoutUrl = $facebook->getLogoutUrl();
} else {
$loginUrl = $facebook->getLoginUrl();
}
}
Он успешно принимает меня к учетной записи пользователя, где он просить разрешения пользователя, но в то время как перенаправлять на мой сайт он выдает ошибку о том,
Fatal error: Uncaught exception 'Google_AuthException' with message
'Error fetching OAuth2 access token, message: 'invalid_grant'' in
C:\xampp\htdocs\urmk\lib\src\auth\Google_OAuth2.php:113 Stack trace:
#0 C:\xampp\htdocs\urmk\lib\src\Google_Client.php(131):
Google_OAuth2->authenticate(Array, 'AQASSzhhLhYIYxI...') #1
C:\xampp\htdocs\urmk\index.php(66):
Google_Client->authenticate('AQASSzhhLhYIYxI...') #2 {main} thrown in
C:\xampp\htdocs\urmk\lib\src\auth\Google_OAuth2.php on line 113**
И снова, если i измените значение if (isset ($ _ GET ['code'])) до if (isset ($ _ GET ['something else'])). Он работает нормально. Итак, как решить эту ошибку. Любая помощь будет оценена по достоинству.
Фаза I: Исправить исключение. – Ray