Facebook php sdk-v4~5.0@dev找不到用户是否登录


Facebook php sdk-v4~5.0@dev could not find user is logged in or not

我使用laravel框架刚刚安装facebook php sdk "facebook/php-sdk-v4": "~5.0@dev"通过composer。现在最初当我试图找到用户是否登录或不,没有得到userid,即使我已经登录了。

在我搜索的例子中,他们使用$user_id = $fb->getUser();获得userID,但我不能使用该方法(得到这个错误:调用未定义的方法Facebook'Facebook::getUser())),所以我使用$user_id = $fb->getClient();

我在我的本地主机上尝试这个,所以在facebook上创建了一个应用程序,并在应用程序域中提到'localhost'。也给了网站url作为我的localhost url。

我的代码是,

            session_start();
            require_once( 'vendor/autoload.php' );
            $fb = new Facebook'Facebook([
              'app_id'                => '---',
              'app_secret'            => '****',
              'default_graph_version' => 'v2.3',
              'cookie'                => 'true'
            ]);
            $helper = $fb->getRedirectLoginHelper();
            $user_id = $fb->getClient();
           if($user_id){
                    try {
                          $accessToken = $helper->getAccessToken();
                    } catch( Facebook'Exceptions'FacebookSDKException $e ) {
                          echo $e->getMessage();
                          exit;
                    }
           }
           else{
                    $permissions = ['email', 'publish_actions', 'user_posts']; // optional
                    $callback    = 'http://localhost:8000/add-customer/Renters';
                    $loginUrl    = $helper->getLoginUrl($callback, $permissions);
                    echo '<a href="' . $loginUrl . '">Log in with Facebook!</a>';
           }

我也不能使用方法像getUser(),api('/me'),getSessionFromRedirect()..

当我尝试只从应用程序帐户(我已经创建了应用程序)在facebook上提供帖子时,我可以发布,如果我从其他帐户登录并运行代码以在墙上提供帖子,那么它会抛出一个错误,如"图形返回一个错误:(#200)用户尚未授权应用程序执行此操作"。

我想要的是确定从任何帐户用户登录或不获得访问令牌,如果登录并能够张贴在用户墙上。

如果你想让应用的管理员/测试员/开发者以外的其他用户使用扩展权限,你的应用必须经过facebook的审核。这些都在文档中:

  • https://developers.facebook.com/docs/facebook-login/review/what-is-login-review
  • https://developers.facebook.com/docs/facebook-login/permissions/v2.4参考