0

これを入力すると、fb:like ボタンがダウンしています。Facebook API ヘルス ページでエラーが報告されてい ます https://developers.facebook.com/live_status

すぐに戻ってくると確信していますが、どうすればこれを検出できますか? その理由は; Facebook 機能があるとボタンが表示されないので、ページの他の要素を非表示にしたいと考えています。

4

2 に答える 2

4

このサイトから JSON 応答を取得します: https://www.facebook.com/feeds/api_status.php

于 2012-11-15T00:37:23.730 に答える
0

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;
      }
   });
});

お役に立てれば!

于 2016-01-28T01:13:02.147 に答える