Все, что я пытаюсь сделать, — это подключить пользователя к Facebook, захватить его информацию (адрес электронной почты, имя, profile_pic) и автоматически зарегистрировать его на моем сайте.
проблема в том, что когда я захожу в / user / login / fb /, меня перенаправляют в приложение fb для предоставления разрешения, а затем оно перенаправляет меня на
и дай мне эту ошибку
Facebook \ FacebookSDKException (700)
You must provide or set a default application id.
Вот мои маршруты
Route::get('user/login/fb', function() {
FacebookSession::setDefaultApplication('', '');
$helper = new FacebookRedirectLoginHelper('user/login/fb/callback');
$loginUrl = $helper->getLoginUrl();
return "<a href='$loginUrl'>facebook</a>";
});
Route::get('user/login/fb/callback', function() {
// A FacebookResponse is returned from an executed FacebookRequest
$helper = new FacebookRedirectLoginHelper('user/login/fb/callback');
$session = $helper->getSessionFromRedirect();
$request = new FacebookRequest($session, 'GET', '/me');
try {
$response = $request->execute();
$me = $response->getGraphObject();
} catch (FacebookRequestException $ex) {
echo $ex->getMessage();
} catch (\Exception $ex) {
echo $ex->getMessage();
}
print_r($me);//->getProperty("id"));
$user = new Giftee;
$user->name = $me->getProperty('first_name') . ' ' . $me->getProperty('last_name');
$user->email = $me->getProperty('email');
$user->photo = 'http://graph.facebook.com' . $me->getProperty('id') . '/picture?type=large';
$user->save();
});
PS: если у вас есть понятный учебник с представлениями и всем, что касается интеграции fb login с laravel, пожалуйста, поделитесь, я искал несколько дней, материал настолько ограничен.
Ваши учетные данные API Facebook не устанавливаются при запросе user/login/fb/callback
либо добавь FacebookSession::setDefaultApplication(...)
в начале этого маршрута или используйте другую библиотеку, которая позволяет вам установить их в глобальном конфигурационном файле.
Ваш маршрут должен выглядеть так:
Route::get('user/login/fb/callback', function() {
FacebookSession::setDefaultApplication(); // your API credentials
// here goes the rest of your code
};
Других решений пока нет …