2012-01-16 3 views
5

Я пытаюсь сделать следующее, используя официальный PHP SDK ФБ:Как проследить причину ошибки внутреннего сервера 500?

$facebook->api(
'/me/feed', 
'POST', 
array(
    'link' => 'test', 
    'message' => 'test' 
) 

)

К сожалению, сервер (не facebook) возвращает ошибку 500.

Запрос проходит, статус отправляется, но мой сервер возвращает ошибку.

Мой вопрос в том, как узнать, в чем причина?

+0

проверить свой журнал ошибок сервера. (если у вас есть файл с исправлением ошибок) –

ответ

5

500, как правило, является «внутренней ошибкой сервера».

Если вы получаете 500 обратно от вашего айки facebook, тогда это может быть что-то не так на их конце.

С другой стороны, ваши HTTP-запросы могут быть немного отключены, а сервер fb идет «um, что?». и отправляет вам 500, потому что он не может объяснить проблему.

Я помню, что несколько лет назад fb api возвращался в основном с кодами «неизвестной ошибки», когда что-то пошло не так - не коснулось этого api с тех пор. Надеюсь, вы не столкнетесь с той же проблемой.

Для того чтобы действительно решить эту проблему, вам нужно будет либо:

A) захватить ваш запрос и ответ HTTP, включая заголовки, сравнить его успешный вызов API, и внести изменения, если это необходимо. B) захватить любые исключения, брошенные в facebook SDK.

Вариант A всегда будет работать, но вариант B, возможно, быстрее.

Отъезд: php exceptions

EDIT: , чтобы увидеть, что вызывает ошибку 500 на вашем сервере, смотрите в ваших апача журналах ошибок.

вы также можете использовать

error_reporting(E_ALL); 

, чтобы исключить любые ошибки PHP.

+0

Я, вероятно, неправильно объяснил себе: сервер возвращает 500 код, а не Facebook. Я бы предположил, что если это будет facebook, запрос просто провалится, и мой сервер не вернет ошибку 500. Статус публикуется, похоже, что проблема FB не заканчивается. – Lior

+0

, в этом случае ваши журналы ошибок apache должны сообщить вам, в чем проблема. – okayGraphics

0

В моем случае я переехал приложения с одного сервера на другой, и недостающее CURL была ошибка :)

В режиме администрирования SSH я мог видеть следующие строки>

PHP Фатальная ошибка: Uncaught исключение " Исключение 'с сообщением' Facebook нуждается в расширении CURL PHP. ' in /srv/www/smixe.com/base_facebook.php:19

Смежные вопросы