【问题标题】:Facebook SDK not catching exceptionsFacebook SDK 未捕获异常
【发布时间】:2018-12-23 22:24:31
【问题描述】:

我在我的 Laravel 5.4 应用程序中使用 Facebook Graph API SDK(作曲家中的“facebook/graph-sdk”:“~5.0”)

我正在尝试从页面中获取一些字段,当页面无效时它会引发错误,但它似乎无法正确捕获错误:

代码如下:

use Facebook\Facebook;

class FacebookUser extends Controller
 {
  try {
   echo 'Trying ' . $venue->id;
   $response = $fb->get('/'.$page.'/locations?fields=hours', $access_token);
  } catch(Facebook\Exceptions\FacebookResponseException $e) {
   // When Graph returns an error
   echo 'Graph returned an error: ' . $e->getMessage();
   exit;
  }

这并不理想,因为每次遇到以下错误时它都会停止:

在 FacebookResponseException.php 第 106 行:

(#100) 尝试访问节点类型(URL)上不存在的字段(小时)

【问题讨论】:

  • 它输出错误消息然后停止,因为你告诉它 ...如果你不希望这种情况发生,那么不要使用 echo 并退出抓块,呵呵。
  • 是您试图捕获的名为 Facebook\Facebook\Exceptions\FacebookResponseException 的异常吗?因为这就是您要捕获的 atm
  • @CBroe 当然 - 如果它捕捉到异常,那么是的,这将是一个解决方案。但它没有捕捉到异常。我可以删除该行,它仍然执行相同的操作。
  • @lagbox 我相信 - 输出到控制台的错误来自 FacebookResponseException.php ?
  • 我感觉是Facebook\Exceptions\FacebookResponseException 而不是Facebook\Facebook\Exceptions\FacebookResponseException

标签: php laravel facebook api sdk


【解决方案1】:

异常很可能被命名为Facebook\Exceptions\FacebookResponseException

因为你有:

use Facebook\Facebook;

这是:

use Facebook\Facebook as Facebook;

你最终试图赶上这门课:

Facebook\Facebook\Exceptions\FacebookResponseException

您可能想像这样调整您的catch

} catch (\Facebook\Exceptions\FacebookResponseException $e) {

【讨论】:

    猜你喜欢
    • 2016-02-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-28
    • 2012-05-31
    相关资源
    最近更新 更多