【问题标题】:Facebook OAuthException: (#1)Facebook OAuthException:(#1)
【发布时间】:2012-02-25 20:31:27
【问题描述】:

我有一些将图像上传到用户个人资料的应用程序。几个小时前,所有应用程序都运行良好,但现在请求上传时,出现此错误

Fatal error: Uncaught OAuthException: (#1) An unknown error occurred thrown in      applications/fb-sdk/facebook.php on line 543

我正在使用以下代码发布图像。

$FILE = "images/$image";

$args = array('message' => 'My msg ');
$args['image'] = '@' . realpath($FILE);

$data = $facebook->api('/'.$uid.'/photos', 'post', $args);

是因为一些政策变化还是一些新功能?

我拥有所有权限,例如上传设置为 true,并且应用程序需要上传文件的权限。

P.s: 应用程序第二次使用时,它可以正常工作。

【问题讨论】:

  • 我们间歇性地遇到同样的问题,努力确定是什么原因造成的。

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


【解决方案1】:

您需要验证用户是否已登录并有权在墙上发帖。我们将通过调用用户的 TRY/CATCH 来做到这一点。

$userId = $facebook -> getUser();

if ($userId) {
  try {
    // Proceed knowing you have a logged in user who's authenticated.
    $user_profile = $facebook->api('/me');
  } catch (FacebookApiException $e) {
      $userId = NULL;
      error_log($e);
  }
}

$app_permissions = array(
  'scope' => 'publish_stream'
  );

$logoutUrl = $facebook->getLogoutUrl();
$loginUrl = $facebook->getLoginUrl($app_permissions);

如果用户未登录或已授权应用,您需要通过标头重定向或链接重定向他。

if ($userId){
    //Then you can call the facebook api
    $data = $facebook->api('/'.$uid.'/photos', 'post', $args);
    //... ...
}

这是我找到的最简单的方法。

编辑:堆栈上的这个问题对我有帮助:Facebook PHP SDK Upload Photos

【讨论】:

    【解决方案2】:

    不,错误是系统无法获取图像文件引起的。 Facebook 将不允许空图像字段出现在 api 中。所以它返回致命错误:未捕获的 OAuthException:(#1) --- 尽管它与 OAuth 和 OAuthException 无关。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-08-06
      • 2017-08-26
      • 2012-01-27
      • 1970-01-01
      • 2016-12-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多