2012-01-16 35 views
5

Tôi đang cố gắng để làm như sau sử dụng PHP SDK chính thức FB của:Làm cách nào để theo dõi nguyên nhân gây ra lỗi máy chủ nội bộ 500?

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

)

Thật không may, máy chủ (không facebook) trả về một lỗi 500.

Yêu cầu đi qua, trạng thái được đăng, nhưng máy chủ của tôi trả về lỗi.

Câu hỏi của tôi là, làm cách nào để tìm hiểu nguyên nhân của nó là gì?

+0

hãy kiểm tra nhật ký lỗi máy chủ của bạn (nếu bạn thấy phiền toái có nhật ký lỗi) –

Trả lời

5

500 thường là "lỗi máy chủ nội bộ".

Nếu bạn nhận được 500 trở lại từ cuộc gọi api facebook của bạn, thì có thể đó là điều gì đó sai trái khi kết thúc.

Sau đó, một lần nữa, các yêu cầu HTTP của bạn có thể hơi lệch và máy chủ fb sẽ "um, cái gì?" và gửi cho bạn 500 vì nó không thể giải thích được vấn đề.

Tôi nhớ một số năm trước fb api đã trả về phần lớn mã "lỗi không xác định" khi có sự cố - không chạm vào api đó kể từ đó. Hy vọng rằng bạn không gặp phải vấn đề tương tự.

Để thực sự giải quyết được vấn đề, bạn sẽ cần một trong hai:

A) chụp yêu cầu HTTP và phản ứng, bao gồm các tiêu đề, so sánh nó với một cuộc gọi api thành công, và thực hiện thay đổi nếu cần thiết. B) chụp bất kỳ trường hợp ngoại lệ nào được ném bởi facebook SDK.

Tùy chọn A sẽ luôn hoạt động, nhưng tùy chọn B có thể nhanh hơn.

Check-out: php exceptions

EDIT: để xem những gì đang gây ra một lỗi 500 trên máy chủ của bạn, hãy nhìn vào các bản ghi lỗi apache của bạn.

bạn cũng có thể sử dụng

error_reporting(E_ALL); 

để loại trừ bất kỳ lỗi php.

+0

Tôi có thể không giải thích chính xác: Máy chủ trả về 500 mã, không phải Facebook. Tôi cho rằng nếu đó là facebook, thì yêu cầu sẽ không thành công và máy chủ của tôi sẽ không trả về lỗi 500. Tình trạng được đăng tải, có vẻ như không có vấn đề gì về kết thúc của FB. – Lior

+0

trong trường hợp đó nhật ký lỗi apache của bạn sẽ cho bạn biết vấn đề là gì. – okayGraphics

0

Trong trường hợp của tôi di chuyển các ứng dụng từ một máy chủ khác và CURL thiếu là lỗi :)

Trong chế độ quản lý ssh tôi có thể nhìn thấy dòng sau>

PHP Fatal error: của router ngoại lệ ' Ngoại lệ 'với thông điệp' Facebook cần phần mở rộng CURL PHP. ' trong /srv/www/smixe.com/base_facebook.php:19

Các vấn đề liên quan