Миссия: Чтобы получить успешный вход в Facebook с моего веб-сайта, верните идентификатор пользователя и, наконец, адрес электронной почты и т.д., Чтобы добавить в базу данных db.
Я загрузил последнюю версию 4.0.0 SKD PHP из developers.facebook.com и загрузил ее в мой файловый менеджер.
Я использую код, найденный на GitHub: http://packetcode.com/rd/6e20a9
Пожалуйста, смотрите код ниже на index.php
<?
/* INCLUSION OF LIBRARY FILEs*/
require_once( 'lib/Facebook/FacebookSession.php');
require_once( 'lib/Facebook/FacebookRequest.php' );
require_once( 'lib/Facebook/FacebookResponse.php' );
require_once( 'lib/Facebook/FacebookSDKException.php' );
require_once( 'lib/Facebook/FacebookRequestException.php' );
require_once( 'lib/Facebook/FacebookRedirectLoginHelper.php');
require_once( 'lib/Facebook/FacebookAuthorizationException.php' );
require_once( 'lib/Facebook/GraphObject.php' );
require_once( 'lib/Facebook/GraphUser.php' );
require_once( 'lib/Facebook/GraphSessionInfo.php' );
require_once( 'lib/Facebook/Entities/AccessToken.php');
require_once( 'lib/Facebook/HttpClients/FacebookCurl.php' );
require_once( 'lib/Facebook/HttpClients/FacebookHttpable.php');
require_once( 'lib/Facebook/HttpClients/FacebookCurlHttpClient.php');
/* USE NAMESPACES */
use Facebook\FacebookSession;
use Facebook\FacebookRedirectLoginHelper;
use Facebook\FacebookRequest;
use Facebook\FacebookResponse;
use Facebook\FacebookSDKException;
use Facebook\FacebookRequestException;
use Facebook\FacebookAuthorizationException;
use Facebook\GraphObject;
use Facebook\GraphUser;
use Facebook\GraphSessionInfo;
use Facebook\FacebookHttpable;
use Facebook\FacebookCurlHttpClient;
use Facebook\FacebookCurl;
/*PROCESS*/
//1.Stat Session
session_start();
//2.Use app id,secret and redirect url
$app_id = 'my id';
$app_secret = 'my secret';
$redirect_url='my url';
//3.Initialize application, create helper object and get fb sess
FacebookSession::setDefaultApplication($app_id,$app_secret);
$helper = new FacebookRedirectLoginHelper($redirect_url);
$sess = $helper->getSessionFromRedirect();
//4. if fb sess exists echo name
if(isset($sess)){
//create request object,execute and capture response
$request = new FacebookRequest($sess, 'GET', '/me');
// from response get graph object
$response = $request->execute();
$graph = $response->getGraphObject(GraphUser::className());
// use graph object methods to get user details
$name= $graph->getName();
echo "hi $name";
}else{
//else echo login
echo '<a href='.$helper->getLoginUrl().'>Login with facebook</a>';
}
?>
Я скопировал бит видеоурока для бит, и он работает, когда он делает это, поэтому я потерял то, что я делаю неправильно.
Когда я нажал ссылку "Войти с facebook", он перевел меня на facebook, попросил разрешения, где я нажал "играть сейчас", а затем перенаправил меня обратно на мой URL-адрес, однако со следующей ошибкой.
Теперь каждый раз, когда я нажимаю ссылку "login with facebook", это просто приводит меня к ошибке.
Fatal error: Uncaught exception 'Facebook\FacebookAuthorizationException' with message 'Error validating verification code. Please make sure your redirect_uri is identical to the one you used in the OAuth dialog request' in /home/*****/public_html/lib/Facebook/FacebookRequestException.php:104 Stack trace: #0 /home/*****/public_html/lib/Facebook/FacebookRequest.php(268): Facebook\FacebookRequestException::create('{"error":{"mess...', Object(stdClass), 400) #1 /home/****/public_html/lib/Facebook/FacebookRedirectLoginHelper.php(146): Facebook\FacebookRequest->execute() #2 /home/*****/public_html/index.php(48): Facebook\FacebookRedirectLoginHelper->getSessionFromRedirect() #3 {main} thrown in /home/*****/public_html/lib/Facebook/FacebookRequestException.php on line 104
Посмотрев здесь и Google, я не могу найти причину этой ошибки и как ее исправить.
Удалось найти ответ.
Думал, что я разместил его здесь, чтобы другие знали, кто может борется.
Веррри просто..
убедитесь, что есть/в конце вашего URL перенаправления.
например,