Facebook OAuthException: (# 1) - PullRequest
       27

Facebook OAuthException: (# 1)

4 голосов
/ 03 февраля 2012

У меня есть несколько приложений, которые загружают изображение в профиль пользователя.Несколько часов назад все приложения работали нормально, но теперь, когда запрашивается выгрузка, выдает эту ошибку

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, и приложение получает разрешение на загрузку файла.

Ps: когда приложение используется 2 раза, оно работает нормально.

Ответы [ 2 ]

2 голосов
/ 06 августа 2012

Вы должны проверить, если пользователь вошел в систему И имеет разрешения на публикацию на стене. Мы собираемся сделать это с помощью 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 Загрузить фотографии

1 голос
/ 24 апреля 2013

Нет, ошибка вызвана тем, что система не может получить файл изображения.Facebook не позволит пустому полю изображения появиться в API.Так что он возвращает фатальную ошибку: Uncaught OAuthException: (# 1) --- хотя это не относится к OAuth и OAuthException.

...