2

私はJSONを初めて使用し、エラーが発生したときにエラーメッセージを取得する際のチェックに問題があります。結果がエラーでない場合、私のコードは正常に動作するので、自分が何をしているのかをある程度理解しています。
これは、解析しようとしているエラー JSON です。

{
   "error": {
      "message": "Unsupported get request.",
      "type": "GraphMethodException",
      "code": 100
   }
}

失敗する私のコードは次のとおりです。

$jsonurl = "http://graph.facebook.com/JubilationDanceMinistry";
//valid $jsonurl = "http://graph.facebook.com/WhitworthACM";
$json = file_get_contents($jsonurl,0,null,null);
$json_output = json_decode($json);

var_dump($json_output);
// This returns NULL


if (property_exists($json_output->error)) {
        echo "<p>error: $json_output->error->{'message'} </p>";
    } else {
        echo "<p>no error :(</p>";
}

$facebook_id = $json_output->{'id'};
$facebook_name = $json_output->{'name'};
$facebook_link = $json_output->{'link'};
4

2 に答える 2

1

URL が400 Bad Request.

デフォルトではfile_get_contents、http ステータス コードが の場合、関数を使用して応答コンテンツを取得することはできません400

ignore_errorsオプションをに設定する必要がありますtrue

$opts = array(
  'http'=>array(
    'ignore_errors' => true
  )
);
$context = stream_context_create($opts);
$jsonurl = "http://graph.facebook.com/JubilationDanceMinistry";
$json = file_get_contents($jsonurl, false, $context);
var_dump($json);
于 2012-11-17T05:39:21.517 に答える
0

->複数の を文字列補間で連鎖させることはできません。

複数の引数を文字列連結に渡すechoか、文字列連結に渡す必要があります。

    echo "<p>error: ", $json_output->error->{'message'}, " </p>";
于 2012-11-17T05:37:30.057 に答える