これを入力すると、fb:like ボタンがダウンしています。Facebook API ヘルス ページでエラーが報告されてい ます https://developers.facebook.com/live_status
すぐに戻ってくると確信していますが、どうすればこれを検出できますか? その理由は; Facebook 機能があるとボタンが表示されないので、ページの他の要素を非表示にしたいと考えています。
これを入力すると、fb:like ボタンがダウンしています。Facebook API ヘルス ページでエラーが報告されてい ます https://developers.facebook.com/live_status
すぐに戻ってくると確信していますが、どうすればこれを検出できますか? その理由は; Facebook 機能があるとボタンが表示されないので、ページの他の要素を非表示にしたいと考えています。
このサイトから JSON 応答を取得します: https://www.facebook.com/feeds/api_status.php
NodeJS の場合:
Node に付属の https モジュールを使用できます: https://nodejs.org/api/https.html#https_https_request_options_callback
Node.js サーバーでこれに苦労していましたが、解決策が見つかりました。http リクエストを実行しようとしても運が悪かったのですが (サポートされていないブラウザーの問題が発生し続けていました)、cURL で実行しようとすると問題なく動作しました。
そのため、サポートされていないブラウザーの問題が発生していたため、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;
}
});
});
お役に立てれば!