Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Laravel Facebook登录/丢失电子邮件_Php_Facebook_Sdk_Laravel_Laravel 4 - Fatal编程技术网

Php Laravel Facebook登录/丢失电子邮件

Php Laravel Facebook登录/丢失电子邮件,php,facebook,sdk,laravel,laravel-4,Php,Facebook,Sdk,Laravel,Laravel 4,我正在尝试在我的Laravel应用程序中创建Facebook登录。但是,我获取的包含所有用户信息的数组不包含用户电子邮件,即使我已经请求了接收电子邮件的权限 这是我的代码: Route::get('login/fb', function() { $facebook = new Facebook(Config::get('facebook')); $params = array( 'redirect_uri' => url('/login/fb/callback'), 'sc

我正在尝试在我的Laravel应用程序中创建Facebook登录。但是,我获取的包含所有用户信息的数组不包含用户电子邮件,即使我已经请求了接收电子邮件的权限

这是我的代码:

Route::get('login/fb', function() {
$facebook = new Facebook(Config::get('facebook'));
$params = array(
    'redirect_uri' => url('/login/fb/callback'),
    'scope' => 'email',
);
return Redirect::to($facebook->getLoginUrl($params));
});

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'));



$me = $facebook->api('/me');


return $me;
返回$me将为我提供除电子邮件地址之外的所有重要用户信息

有办法解决这个问题吗

任何帮助都将不胜感激


谢谢。

有些情况下,facebook不会回复电子邮件。这可能是因为用户未设置主电子邮件,或者他们的电子邮件未经验证。在这种情况下,您的逻辑应该检查电子邮件是否已返回,如果未返回,请使用他们的facebook电子邮件。FacebookUsername@facebook.com

有些情况下,facebook不会返回电子邮件。这可能是因为用户未设置主电子邮件,或者他们的电子邮件未经验证。在这种情况下,您的逻辑应该检查电子邮件是否已返回,如果未返回,请使用他们的facebook电子邮件。FacebookUsername@facebook.com

//我和哨兵一起用过

        // get data from input
$code = Input::get( 'code' );

// get fb service
$fb = OAuth::consumer( 'Facebook' );

// check if code is valid

// if code is provided get user data and sign in
if ( !empty( $code ) ) {

    // This was a callback request from facebook, get the token
    $token = $fb->requestAccessToken( $code );

    // Send a request with it
    $result = json_decode($fb->request( '/me?fields=id,name,first_name,last_name,email,photos' ), true);

    $message = 'Your unique facebook user id is: ' . $result['id'] . ' and your name is ' . $result['name']. $result['email'];
    //echo $message. "<br/>";

    //Var_dump
    //display whole array().
    //echo('http://graph.facebook.com/'.$result['id'].'/picture?type=large<br>');
    //dd($result);


    $user = \User::where("email",$result['email'])->first();

    if($user!=NULL){
        $userxx = Sentry::findUserByLogin($result['email']);
        Sentry::login($userxx, false);
    return Redirect::to('Beşiktaş');
    }
    else
        {

            $k=str_random(8);
            $user = Sentry::register(array(
                        'activated' => 1,
                        'facebook' => 1,
                        'password' => $k,
                        'email' => $result['email'],
                        'first_name' =>$result['first_name'],
                        'last_name' => $result['last_name'] ,
                        'avatar' => 'http://graph.facebook.com/'.$result['id'].'/picture?type=large',

                ));

            Sentry::login($user, false);

            return Redirect::to('Beşiktaş');
        } 




}
// if not ask for permission first
else {
    // get fb authorization
    $url = $fb->getAuthorizationUri();

    // return to facebook login url
     return Redirect::to( (string)$url );
}
//从输入获取数据
$code=Input::get('code');
//获得餐饮服务
$fb=OAuth::消费者('Facebook');
//检查代码是否有效
//如果提供了代码,请获取用户数据并登录
如果(!空($code)){
//这是来自facebook的回调请求,获取令牌
$token=$fb->requestAccessToken($code);
//发送一个请求
$result=json_decode($fb->request('/me?fields=id、name、first_name、last_name、email、photos'),true);
$message='您唯一的facebook用户id为:'.$result['id'.',您的姓名为'.$result['name'.$result['email'];
//回显$message。“
”; //瓦鲁垃圾场 //显示整个数组()。 //回声('http://graph.facebook.com/“.$result['id']./picture?type=large
”; //dd(结果); $user=\user::where(“email”,$result['email'])->first(); 如果($user!=NULL){ $userxx=Sentry::findUserByLogin($result['email']); Sentry::login($userxx,false); return Redirect::to('Beşiktaş'); } 其他的 { $k=str_随机(8); $user=Sentry::寄存器(数组( “已激活”=>1, “facebook”=>1, “密码”=>$k, 'email'=>$result['email'], 'first_name'=>$result['first_name'], 'last_name'=>$result['last_name'], '化身'=>'http://graph.facebook.com/'.$result['id']./picture?type=large', )); Sentry::login($user,false); return Redirect::to('Beşiktaş'); } } //如果没有,请先请求许可 否则{ //获得fb授权 $url=$fb->getAuthorizationUri(); //返回facebook登录url 返回重定向::到((字符串)$url); }
//我和哨兵一起使用

        // get data from input
$code = Input::get( 'code' );

// get fb service
$fb = OAuth::consumer( 'Facebook' );

// check if code is valid

// if code is provided get user data and sign in
if ( !empty( $code ) ) {

    // This was a callback request from facebook, get the token
    $token = $fb->requestAccessToken( $code );

    // Send a request with it
    $result = json_decode($fb->request( '/me?fields=id,name,first_name,last_name,email,photos' ), true);

    $message = 'Your unique facebook user id is: ' . $result['id'] . ' and your name is ' . $result['name']. $result['email'];
    //echo $message. "<br/>";

    //Var_dump
    //display whole array().
    //echo('http://graph.facebook.com/'.$result['id'].'/picture?type=large<br>');
    //dd($result);


    $user = \User::where("email",$result['email'])->first();

    if($user!=NULL){
        $userxx = Sentry::findUserByLogin($result['email']);
        Sentry::login($userxx, false);
    return Redirect::to('Beşiktaş');
    }
    else
        {

            $k=str_random(8);
            $user = Sentry::register(array(
                        'activated' => 1,
                        'facebook' => 1,
                        'password' => $k,
                        'email' => $result['email'],
                        'first_name' =>$result['first_name'],
                        'last_name' => $result['last_name'] ,
                        'avatar' => 'http://graph.facebook.com/'.$result['id'].'/picture?type=large',

                ));

            Sentry::login($user, false);

            return Redirect::to('Beşiktaş');
        } 




}
// if not ask for permission first
else {
    // get fb authorization
    $url = $fb->getAuthorizationUri();

    // return to facebook login url
     return Redirect::to( (string)$url );
}
//从输入获取数据
$code=Input::get('code');
//获得餐饮服务
$fb=OAuth::消费者('Facebook');
//检查代码是否有效
//如果提供了代码,请获取用户数据并登录
如果(!空($code)){
//这是来自facebook的回调请求,获取令牌
$token=$fb->requestAccessToken($code);
//发送一个请求
$result=json_decode($fb->request('/me?fields=id、name、first_name、last_name、email、photos'),true);
$message='您唯一的facebook用户id为:'.$result['id'.',您的姓名为'.$result['name'.$result['email'];
//回显$message。“
”; //瓦鲁垃圾场 //显示整个数组()。 //回声('http://graph.facebook.com/“.$result['id']./picture?type=large
”; //dd(结果); $user=\user::where(“email”,$result['email'])->first(); 如果($user!=NULL){ $userxx=Sentry::findUserByLogin($result['email']); Sentry::login($userxx,false); return Redirect::to('Beşiktaş'); } 其他的 { $k=str_随机(8); $user=Sentry::寄存器(数组( “已激活”=>1, “facebook”=>1, “密码”=>$k, 'email'=>$result['email'], 'first_name'=>$result['first_name'], 'last_name'=>$result['last_name'], '化身'=>'http://graph.facebook.com/'.$result['id']./picture?type=large', )); Sentry::login($user,false); return Redirect::to('Beşiktaş'); } } //如果没有,请先请求许可 否则{ //获得fb授权 $url=$fb->getAuthorizationUri(); //返回facebook登录url 返回重定向::到((字符串)$url); }
看一看,和(所有SO问题/答案)。看一看,和(所有SO问题/答案)。