通过laravel 4中的Facebook API登录时出现错误消息未定义电子邮件
给出错误消息未定义的电子邮件。以及当我想插入lastname时,给出相同错误未定义的lastname 请帮助我。我第一次在laravel中实现API 请给我发送任何与Facebook和谷歌登录Laravel4.2相关的链接通过laravel 4中的Facebook API登录时出现错误消息未定义电子邮件,facebook,laravel,laravel-4,facebook-javascript-sdk,laravel-routing,Facebook,Laravel,Laravel 4,Facebook Javascript Sdk,Laravel Routing,给出错误消息未定义的电子邮件。以及当我想插入lastname时,给出相同错误未定义的lastname 请帮助我。我第一次在laravel中实现API 请给我发送任何与Facebook和谷歌登录Laravel4.2相关的链接 Route::get('login/fb', function(){ $facebook = new Facebook(Config::get('facebook')); $params = array( 'redirect_uri' => url('/log
Route::get('login/fb', function(){ $facebook = new Facebook(Config::get('facebook'));
$params = array(
'redirect_uri' => url('/login/fb/callback'),
'scope' => 'email',
);
return Redirect::away($facebook->getLoginUrl($params));});
})) 您应该明确请求所需的字段: $me=$facebook->api('/me?fields=电子邮件、姓氏、名)
你得到的
$me
正确吗?是的,我得到的$me正确$me=$facebook->api('/me');因为我使用Facebook connect作为Javascript应用程序,我也遇到了同样的问题。我使用的范围是:“public_profile,email”,用于获取用户电子邮件:FB.api('/me?fields=email',function(response){var email=response.email;});
Route::get('login/fb/callback', function() {
$code = Input::get('code');
if (strlen($code) == 0) return Redirect::to('/')->with('message', 'There was an error communicating with Facebook');
$facebook = new Facebook(Config::get('facebook'));
$uid = $facebook->getUser();
if ($uid == 0) return Redirect::to('/')->with('message', 'There was an error');
$me = $facebook->api('/me');
$profile = Profile::whereUid($uid)->first();
if (empty($profile)) {
$user = new User;
$user->firstname = $me['name'];
$user->email=$me['email'];
$user->pic = 'https://graph.facebook.com/'.$me['id'].'/picture?type=large';
$user->save();
$profile = new Profile();
$profile->uid = $uid;
$profile->username = $me['id'];
$profile = $user->profiles()->save($profile);
}
$profile->access_token = $facebook->getAccessToken();
$profile->save();
$user = $profile->user;
Auth::login($user);
return Redirect::to('index')->with('message', 'Logged in with Facebook');