我无法在try catch块中捕获Facebookexceptions

时间:2016-08-04 23:20:20

标签: php facebook laravel-5 facebook-php-sdk

我遇到一个问题,抓住正确的异常,无论我做什么,我得到相同的回应。这是我在视图中得到的回应 验证访问令牌时出错:用户未在FacebookResponseException.php第89行中授权应用程序FacebookResponseException:

在用户在创建了access_token之后从Facebook取消授权我的应用程序之后,问题就出现了,我要做的就是捕获异常并自动将它们注销并刷新会话:但我似乎无法找到抓住的正确例外 我已经测试了所有这些:我将问题缩小到了这个catch块:我包含了catch块,然后是我在路由函数中使用的完整代码。

ActionBar bar = getActionBar();
bar.setBackgroundDrawable(new ColorDrawable("COLOR"));

现在是此页面的完整代码:

try {
    // Returns a `Facebook\FacebookResponse` object
    $response = $fb->get('/me?fields=permissions');
    } catch(Facebook\Exceptions\FacebookResponseException $e) {
    echo 'Graph returned an error: ' . $e->getMessage();
    exit;
    } catch(Facebook\Exceptions\FacebookSDKException $e) {
    echo 'Facebook SDK returned an error: ' . $e->getMessage();
    exit;
    } catch(Facebook\Exceptions\FacebookAuthenticationException $e) {
    echo 'Facebook Dan1 returned an error: ' . $e->getMessage();
    exit;
    } catch(Facebook\Exceptions\FacebookAuthorizationException $e) {
    echo 'Facebook Dan2 returned an error: ' . $e->getMessage();
    exit;
    } catch(Facebook\Exceptions\FacebookClientException $e) {
    echo 'Facebook Dan3 returned an error: ' . $e->getMessage();
    exit;
    } catch(Exception $e) {
    echo 'Facebook Dan4 returned an error: ' . $e->getMessage();
    exit;
     }

1 个答案:

答案 0 :(得分:0)

好吧我发现我做错了。我正在使用sammyk laravelfacebooksdk https://github.com/SammyK/LaravelFacebookSdk并且仅包括:

use SammyK\LaravelFacebookSdk\LaravelFacebookSdk;

我没有意识到我还需要添加

use Facebook;

到命名空间。

很容易解决,这给我带来了很多麻烦。