Laravel 5.5社交网站无效

时间:2017-10-03 13:22:32

标签: facebook-graph-api laravel-5 facebook-php-sdk laravel-socialite laravel-5.5

我最近尝试将laravel socialite与laravel 5.5集成,但我收到了一个错误:

  

GuzzleHttp \ Exception \ ClientException(400)客户端错误:GET https://graph.facebook.com/v2.10/me? access_token=$my_token&appsecret_proof=my_proofsecret导致了   400 Bad Request回复:{"错误":{"消息":"错误验证   访问令牌:会话已于星期二,03-Oct-17 05:00:00到期   太平洋夏令时。当前(截断...)

现在我已经在某种程度上调试了它,基本上这是在FacebookProvider.php line number 89中创建错误的行:

protected function getUserByToken($token)
{
    $meUrl = $this->graphUrl.'/'.$this->version.'/me?access_token='.$token.'&fields='.implode(',', $this->fields);

    if (! empty($this->clientSecret)) {
        $appSecretProof = hash_hmac('sha256', $token, $this->clientSecret);
        $meUrl .= '&appsecret_proof='.$appSecretProof;
    }

    $response = $this->getHttpClient()->get($meUrl, [
        'headers' => [
            'Accept' => 'application/json',
        ],
    ]);

    return json_decode($response->getBody(), true);
}

这是一行:

  $appSecretProof = hash_hmac('sha256', $token, $this->clientSecret);

如果我把它评论出来,如果其他阻止它似乎工作正常,不能弄清楚什么是错的。

2 个答案:

答案 0 :(得分:1)

我实际上没有为我的应用程序选择access_token,而是从图API中获取它。我选择了默认的图形api令牌。 Facebook实际上允许您生成特定于您的应用程序的访问令牌,因此您必须专门选择它。以下是它的屏幕截图。

enter image description here

答案 1 :(得分:-2)

$ meUrl。='& appsecret_proof ='。$ appSecretProof;

请删除此行和&登录