當我鍵入這個FB:像按鈕向下 - Facebook的API健康頁報告錯誤 https://developers.facebook.com/live_status如何檢測,如果API是跌?
我相信它會很快回來可以,但我怎麼能檢測呢? 原因是;我想隱藏的頁面上的其他元素,因爲它看起來很奇怪,當你有一個Facebook功能&那麼按鈕丟失。
當我鍵入這個FB:像按鈕向下 - Facebook的API健康頁報告錯誤 https://developers.facebook.com/live_status如何檢測,如果API是跌?
我相信它會很快回來可以,但我怎麼能檢測呢? 原因是;我想隱藏的頁面上的其他元素,因爲它看起來很奇怪,當你有一個Facebook功能&那麼按鈕丟失。
獲得從這個網站的JSON響應:https://www.facebook.com/feeds/api_status.php
爲的NodeJS:
您可以使用自帶的節點https的模塊:https://nodejs.org/api/https.html#https_https_request_options_callback
我這個對我的節點掙扎.js服務器,但找到了一個解決方案。我試圖做的,沒有運氣的HTTP請求(不斷收到不支持的瀏覽器的問題),但是當我試圖用捲曲做到這一點,它的工作就好了。
所以我決定在我爲我的NodeJS請求頭傳遞User-Agent的,因爲我得到的是不支持的瀏覽器問題:
var https = require("https");
var options = {
hostname: 'www.facebook.com',
port: 443,
path: '/feeds/api_status.php',
method: 'GET',
headers: {
"User-Agent": 'curl/7.43.0'
}
};
var req = https.request(options, function(res) {
res.on('data', function(d) {
process.stdout.write(d);
});
});
req.end();
req.on('error', function(e) {
console.error(e);
});
的api_status然後在控制檯打印出像這樣:
{
"current": {
"health": 1,
"subject": "Facebook Platform is Healthy"
},
"push": {
"status": "Complete",
"updated": "2016-01-27T16:05:12-08:00",
"id": 61183893
}
}
你可以做你需要做什麼用。例如,如果你想用它來看看Facebook的API是健康的,你可以做到以下幾點:
var facebookIsHealthy;
var req = https.request(options, function(res) {
res.on('data', function(d) {
// d is a buffer object
var bufferString = d.toString();
var bufferObject = JSON.parse(bufferString);
if(bufferObject.current.health === 1) {
facebookIsHealthy = true;
}
else {
facebookIsHealthy = false;
}
});
});
希望這有助於!
對不起是密集的,但你將如何從這個頁面抽絲JSON,因爲我有零運氣'file_get_contents',這對我之後我嘗試'json_decode'返回null。 – SpatialAnomaly
取決於語言。我會問另一個問題。 – PearsonArtPhoto