我想弄清楚如何处理用户取消授权我的Facebook应用时创建的错误。我正在使用幼虫5,这是我得到的当前错误:
验证访问令牌时出错:用户未授权应用程序
access_token存储在当前会话中。有没有办法可以使用try和catch语句或任何聪明的解决方案,这样当我得到一个不验证的access_token时,我仍然可以继续使用其余的代码。
下面是我正在使用的代码,它的世界伟大的填充应用程序被重新授权:
$token = Session::get('fb_user_access_token');
$permissionsToRequest = ([
'public_profile',
'publish_actions'
]);
$login_link_for_public_actions = $fb->getLoginUrl($permissionsToRequest, 'http://pms.dev:8000/facebook/publicactions/callback');
if (isset($token)) {
$fb->setDefaultAccessToken($token);
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;
}
// Returns a `Facebook\GraphNodes\GraphUser` collection
$facebookuser = $response->getGraphUser();
$ty= json_decode($facebookuser);
$permissions = $facebookuser['permissions'];
$checked = '';
foreach ($permissions as $p) {
if ($p['permission'] == 'publish_actions' && $p['status'] == 'granted' ) {
$checked = 'checked';
}
}
} else {
$checked = null;
}
我将其缩小到try catch语句中出现的错误:
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;
}
我在我的视图中收到此错误:FacebookResponseException.php第89行中的FacebookResponseException:
我在catch语句中尝试了dd()不同的值,但没有任何变化。我想我抓错了,不知道还能做什么?