Как отследить причину 500 внутренней ошибки сервера? - PullRequest
5 голосов
/ 16 января 2012

Я пытаюсь сделать следующее, используя официальный PHP SDK FB:

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

)

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

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

Мой вопрос: как мне выяснить причину этого?

Ответы [ 2 ]

5 голосов
/ 17 января 2012

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

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

Опять же, ваши HTTP-запросы могут быть немного неактивными, и fb-сервер работает "эм, что?"и посылает вам 500, потому что это не может объяснить проблему.

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

Чтобы действительно решить эту проблему, вам необходимо:

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

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

Проверить: Исключения php

РЕДАКТИРОВАТЬ: чтобы увидеть, что вызывает ошибку 500 на вашем сервере, посмотрите в журналах ошибок Apache.

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

error_reporting(E_ALL);

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

0 голосов
/ 22 февраля 2013

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

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

Неустранимая ошибка PHP: необработанное исключение «Исключение» с сообщением «Facebook требуется расширение CURL PHP». в /srv/www/smixe.com/base_facebook.php:19

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...