Facebook graph api 例外情况:(#1)

Facebook graph api 例外情况:(#1),facebook-graph-api,oauth,facebook-php-sdk,Facebook Graph Api,Oauth,Facebook Php Sdk,我有几个应用程序上传图像到用户配置文件。几个小时前,所有应用程序都工作正常,但现在当请求上载时,它会出现此错误 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'

我有几个应用程序上传图像到用户配置文件。几个小时前,所有应用程序都工作正常,但现在当请求上载时,它会出现此错误

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);
这是因为某些政策变化还是某些新功能

我有所有的权限,如上传设置为真,应用程序需要上传文件的权限


注意:当第二次使用该应用程序时,它工作正常。

您需要验证用户是否已登录并有权在墙上发布。我们将通过一个对用户的调用来实现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将不允许在api中显示空图像字段。因此,它返回致命错误:Uncaught OAuthException:(#1)——尽管它与OAuth和OAuthException无关

我们时断时续地遇到同样的问题,努力找出原因。