У меня проблема. Мой код работал отлично несколько дней назад. Но сейчас это не так. Я ничего не изменил. Только что обновленная версия SDK с 4.0.0 до 4.0.17. Вот мой код:
<?php
session_start();
require_once( 'Facebook/HttpClients/FacebookHttpable.php' );
require_once( 'Facebook/HttpClients/FacebookCurl.php' );
require_once( 'Facebook/HttpClients/FacebookCurlHttpClient.php' );
require_once( 'Facebook/Entities/AccessToken.php' );
require_once( 'Facebook/Entities/SignedRequest.php' );
require_once( 'Facebook/FacebookSession.php' );
require_once( 'Facebook/FacebookRedirectLoginHelper.php' );
require_once( 'Facebook/FacebookRequest.php' );
require_once( 'Facebook/FacebookResponse.php' );
require_once( 'Facebook/FacebookSDKException.php' );
require_once( 'Facebook/FacebookRequestException.php' );
require_once( 'Facebook/FacebookOtherException.php' );
require_once( 'Facebook/FacebookAuthorizationException.php' );
require_once( 'Facebook/GraphObject.php' );
require_once( 'Facebook/GraphSessionInfo.php' );
require_once( 'Foursquare/FoursquareAPI.class.php');
use Facebook\HttpClients\FacebookHttpable;
use Facebook\HttpClients\FacebookCurl;
use Facebook\HttpClients\FacebookCurlHttpClient;
use Facebook\Entities\AccessToken;
use Facebook\Entities\SignedRequest;
use Facebook\FacebookSession;
use Facebook\FacebookRedirectLoginHelper;
use Facebook\FacebookRequest;
use Facebook\FacebookResponse;
use Facebook\FacebookSDKException;
use Facebook\FacebookRequestException;
use Facebook\FacebookOtherException;
use Facebook\FacebookAuthorizationException;
use Facebook\GraphObject;
use Facebook\GraphSessionInfo;
$facebookAppKey = 'xxxxxxxxxxxxx';
$facebookSecretKey = 'xxxxxxxxxxxxxx';FacebookSession::setDefaultApplication( $facebookAppKey, $facebookSecretKey);
$helper = new FacebookRedirectLoginHelper("http://fb.goodnia.com/");if ( isset( $_SESSION ) && isset( $_SESSION['fb_token'] ) ) {
$session = new FacebookSession( $_SESSION['fb_token'] );
try {
if ( !$session->validate() ) {
$session = null;
}
} catch ( Exception $e ) {
$session = null;
}
}
if ( !isset( $session ) || $session === null ) {
try {
$session = $helper->getSessionFromRedirect();
} catch( FacebookRequestException $ex ) {
print_r( $ex );
} catch( Exception $ex ) {
print_r( $ex );
}
}
if ( isset( $session ) ) {
$_SESSION['fb_token'] = $session->getToken();
$session = new FacebookSession( $session->getToken() );
$request = new FacebookRequest( $session, 'GET', '/me' );
$response = $request->execute();
$graphObject = $response->getGraphObject();
$email = $graphObject->getProperty('email');
$userlink = $graphObject->getProperty('link');
$name = $graphObject->getProperty('name');
$gender = $graphObject->getProperty('gender');
$identifier = $graphObject->getProperty('id');
print_r($email);
}
?>
Вот ссылка:
<a href="<?php echo $helper->getLoginUrl(array( 'email', 'user_friends','publish_actions' ));?>" class="btn btn-dark btn-lg loginWithFacebook"></a>
Поэтому, когда я нажимаю на ссылку, он перенаправляет меня на страницу авторизации Facebook. После ввода моих учетных данных, он перенаправляет меня обратно. Но с такими параметрами, как «код» и «состояние».
Вот:
URL запроса: http://fb.goodnia.com/?code=AQDe3te_RigftBZoM3GqSto3-SO7d8hMoSGeCFj5i-Js_vB1_X9rb_3N4UoWVSAacY_jbHQf_78E4djrZkYRBxcUvi6cHI8xuH_bknit-f9Fmn5F7s8gaT8Z3i2bKeY-6nGOyRryMVKLqlhGhrDbmp9AshuzmljKOAi06_nC_Ygv2wtwcDEqAbn4dP_8QxCnHitK7tdd0qxhCYVe1LTO_PQrky8lABn2koeLcK5n8l5TS65-obVqJTRI-z_UgZ8feSnOZv3a1fSa2yXocCNHBh5f4lrmrBKnxmf6N47kTXIen4ARmbYNfvmdtlN6ec84mBMz-EZAQUcAWaLuC54zusjz&состояние = c95ad1b3df3f4044c203029a9b6cac03
Метод запроса: GET
Код состояния: 500 Внутренняя ошибка сервера
Где я не прав? Я ценю вашу помощь.
Задача ещё не решена.
Других решений пока нет …