Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/8.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 5从facebook获取用户信息_Php_Facebook_Laravel_Facebook Php Sdk_Laravel 5 - Fatal编程技术网

Php Laravel 5从facebook获取用户信息

Php Laravel 5从facebook获取用户信息,php,facebook,laravel,facebook-php-sdk,laravel-5,Php,Facebook,Laravel,Facebook Php Sdk,Laravel 5,我正在尝试使用带有Laravel 5的Facebook PHP sdk从Facebook获取用户id。我对我得到的错误做了很多搜索,但没有一个答案有用 设置关键点: use Facebook\FacebookSession; FacebookSession::setDefaultApplication('XXX' , 'XXX'); 重定向到Facebook: public function getFacebook() { $helper = new FacebookHandler(u

我正在尝试使用带有Laravel 5的Facebook PHP sdk从Facebook获取用户id。我对我得到的错误做了很多搜索,但没有一个答案有用

设置关键点:

use Facebook\FacebookSession;
FacebookSession::setDefaultApplication('XXX' , 'XXX');
重定向到Facebook:

public function getFacebook()
{
    $helper = new FacebookHandler(url('settings/set_facebook'));
    return Redirect::to($helper->getLoginUrl());
}
获取信息:

public function setFacebook()
{
    try{
        $session = new FacebookSession(\Session::get('state'));
        $request = new FacebookRequest($session, 'GET', '/me');
        $response = $request->execute();
        $graphObject = $response->getGraphObject()->asArray();
        dd($graphObject);
    } catch(Exception $e){
        dd(
            $e->getMessage(),
            $e->getCode(),
            $e
        );
    }
}
Laravel会话的代码:

use Facebook\FacebookRedirectLoginHelper;
use Illuminate\Support\Facades\Session;

class FacebookHandler extends FacebookRedirectLoginHelper
{
    protected function storeState($state)
    {
        Session::put('state', $state);
    }

    protected function loadState()
    {
        return $this->state = Session::get('state');
    }
}
输出:

"Invalid OAuth access token."

190

FacebookAuthorizationException {#215 ▶}
我做错了什么?

使用。它支持facebook、twitter、google+和github。
而且易于使用。

我通过删除setFacebook()并将getFacebook()更新为以下内容,解决了这个问题:

当然,您需要自定义错误处理

$helper = new FacebookHandler(url('settings/get_facebook'));

try {
    $session = $helper->getSessionFromRedirect();
} catch( FacebookRequestException $e ) {
    dd($e);
} catch( Exception $e ) {
    dd($e);
}

if (isset($session))
{
    $user_profile = (new FacebookRequest(
        $session, 'GET', '/me'
    ))->execute()->getGraphObject(GraphUser::className());

    dd($user_profile);
} else {
    return Redirect::to($helper->getLoginUrl());
}