我遇到一个问题,抓住正确的异常,无论我做什么,我得到相同的回应。这是我在视图中得到的回应 验证访问令牌时出错:用户未在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;
}
答案 0 :(得分:0)
好吧我发现我做错了。我正在使用sammyk laravelfacebooksdk https://github.com/SammyK/LaravelFacebookSdk并且仅包括:
use SammyK\LaravelFacebookSdk\LaravelFacebookSdk;
我没有意识到我还需要添加
use Facebook;
到命名空间。
很容易解决,这给我带来了很多麻烦。