PHP和facebook的异常处理

时间:2014-04-01 17:35:37

标签: php facebook facebook-graph-api facebook-fql facebook-php-sdk

我有以下代码:

$fql = "SELECT first_name, last_name FROM user where uid=me()";
$sparam = array('method' => 'fql.query', 'query' => $fql, 'callback' => '', 'access_token' => $fbtoken);
try{
    $sfqlResult = $facebook -> api($sparam);
}
catch(CurlException $e) {
    echo 'There is issue with Token';
}

假设我的访问令牌是错误的我想捕获异常,但它没有捕获异常并显示传统错误

  

致命错误:未捕获异常:190:无效的OAuth访问令牌。投入

这方面的任何帮助。

1 个答案:

答案 0 :(得分:2)

您可以使用FacebookApiException Class来捕获例外情况。

实施例 -

try {
  $sfqlResult = $facebook -> api($sparam);
} catch(FacebookApiException $e) {
  $e_type = $e->getType();
  $result = $e->getResult();
  error_log('Got an ' . $e_type . ' while posting');
  error_log(json_encode($result));
}


但据我所知,存在与令牌相关的问题,不会抛出异常,但错误结果将在$sfqlResult中返回;你可以检查对象$sfqlResult->error;

if(!isset($sfqlResult['error']))
{
    // no error
}
else
{
    echo "Facebook error: ".$sfqlResult['error']->message;
}