LARAVEL FACEBOOKPROVIDER

时间:2017-03-28 17:39:07

标签: facebook laravel

我最近使用他们的API更新了facebook。

我有一个错误说

  

Laravel FacebookProvider错误。未定义的变量:access_token。

我发现了另一个问题,他们说要这样做:

vendor/laravel/socialite/src/Two/FacebookProvider.php

替换

parse_str($body, $data);
return $access_token;

使用

parse_str($body, $data);
$json = json_decode(key($data));
return $json->access_token; 

我做了这些更改后,现在我遇到了这个错误

  

FacebookProvider.php第67行中的FatalErrorException:   无法访问空房产

这里是链接:https://concoura.com

2 个答案:

答案 0 :(得分:0)

永远不要修改供应商文件。相反,通过composer更新您的包。这是在一段时间之前修复的,因为FacebookProvider发生了很大的变化,并使用了一种完全不同的方法来检索和提供访问代码。

 /**
 * {@inheritdoc}
 */
public function getAccessTokenResponse($code)
{
    $postKey = (version_compare(ClientInterface::VERSION, '6') === 1) ? 'form_params' : 'body';
    $response = $this->getHttpClient()->post($this->getTokenUrl(), [
        $postKey => $this->getTokenFields($code),
    ]);
    $data = [];
    $data = json_decode($response->getBody(), true);
    return Arr::add($data, 'expires_in', Arr::pull($data, 'expires'));
}

答案 1 :(得分:0)

我遇到了同样的问题,我用

解决了
  

作曲家需要laravel / socialite:^ 2.0

使用Laravel 5.2和5.3进行测试