php - Laravel 社交名媛错误 : "An active access token must be used to query information about the current user."

标签 php facebook laravel laravel-5.2 facebook-php-sdk

我正在使用 Socialite 通过 Facebook 验证我的用户。但是,我无法让它工作。我关注了this教程,但出现以下错误:

enter image description here

我到处看了看,什么都试过了,但我无法让它工作。这是我的代码:

在 services.php 中:

'facebook' => [
    'client_id' => '[My App ID]',
    'client_secret' => '[My App Secret]',
    'redirect' => 'http://localhost:8000/auth/facebook/callback/',
],

我的路线:

Route::group(['middleware' => ['web', 'requestlog']], function () {   
    Route::get('auth/facebook', 'Auth\AuthController@redirectToProvider');
    Route::get('auth/facebook/callback/', 'Auth\AuthController@handleProviderCallback');
});

然后在我的 AuthController 中:

use Laravel\Socialite\Facades\Socialite;

public function redirectToProvider()
{
    return Socialite::driver('facebook')->redirect();
}

public function handleProviderCallback()
{
    try {

        $providerUser = Socialite::driver('facebook')->user();
        dd('yay it worked!');

      } catch (RequestException $e) {

      dd($e->getResponse()->json());

    }
}

然后我在 FB 中有这些设置:

enter image description here

enter image description here

出了什么问题?据我所知,我遵循了所有必要的步骤。我不明白这里出了什么问题。我希望我提供了所有必要的信息!

编辑

错误显示页面上的 url 如下所示: http://localhost:8000/auth/facebook/callback?code=AQBtnKEqZgImLqN7f3hETe9GptgzFH71sXrV5qmv8Rpo6Oj5-4rl8mBjFPbfkBtiV8w9atV7X4OrWfHyalJkXU-k6lkEv1bly6v5Qxm2es-_RRp8gfoSWOZwjqE34Rvq6__L3aEOERPEa9LSBk_rKVP_cYGZoQeAydRLQUZVGdr_p1SuE1hRZIvZTAZ-zorkPoyyCDNZtDEVFHGRJt_c3kTf_AKE97FVemrXrUDzxaX-rvovKtfGF3u4CvAIt5pe4g7zD30jAWF78ZgjjPpr21MdaGwP5V0tc8g84oz0dR5Nbit7sKeUE-XblWFrQCIKfqs-OJ6rcuzw7iPTx6xrQ9Ev&state=4f924a9974207482c6fce24c1d74705c6688adc0#_=_

我还尝试了隐身模式、删除 cookie 等。同样的结果...

最佳答案

我不想弄乱访问 token 或其他 API,因为我认为这不能解决我的问题。但是现在(我不知道过了多久......)我开始工作了!对于也有此问题的人;我执行了以下步骤,但不幸的是它成功了:

  1. 我从 composer.json 中删除了 socialite 并更新了它。
  2. 我重新安装了社交名媛。我在 composer.json 中添加了以下行:"laravel/socialite": "2.*"
  3. 然后,当我运行代码片段时,出现以下错误:ErrorException in FacebookProvider.php line 89:Undefined index: first_name
  4. 之后,我替换了 FacebookProvider.php 中的代码 with this file from github .

不要忘记每次都随机执行 composer dump-autoload,因为有时随机似乎也有帮助。

现在不管出于什么原因,它终于可以工作了!

编辑

我还注意到 composer update 做得很好。如果这不起作用,请将 socialite 更新到最新版本。这最终解决了我最近遇到的另一个问题。

关于php - Laravel 社交名媛错误 : "An active access token must be used to query information about the current user.",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41041565/

相关文章:

php - ACF中继场|装载更多

Facebook 评论插件 : How to sort the comments, 最新第一?

laravel - 在 Laravel 中下载 S3 文件链接

php - 在 Laravel 中使用 ->paginate() 时出错

php - 如何在 pdf-viewer 中创建加载器

javascript - 证明 hashbang URL 的 noscript 网站内容

facebook - 使用 Graph API 从 Facebook 事件中获取照片和视频

ios - 在 Facebook Developers App 上添加多个 iOS 包 ID 的通配符?

Laravel迁移使多个主键失败

php - 搜索栏上的 Wordpress 图片边框