1

以下のようにワードプレス関数 wp_remote_get を使用して、Twitter から json データを取得しています。

$response = wp_remote_get('http://api.twitter.com/1/statuses/user_timeline.json?screen_name=twitter');
$json = json_decode($response['body']);

そしてそれはうまくいきます。ただし、Twitter が何らかのエラーを返すと、私のページで問題が完全に発生します。その場合、そのエラー部分以降、私のページのコンテンツが読み込まれません。エラーがない場合にのみ、エラーをキャッチして続行するにはどうすればよいですか。

たとえば、Twitter の制限を超えた場合、次の応答が返されます。

{"request":"\/1\/statuses\/user_timeline.json?screen_name=twitter","error":"Rate limit exceeded. Clients may not make more than 150 requests per hour."}

上記のレスポンシブから、どうすればエラーを取得できますか。フォローしようとしていますが、うまくいきません(ページがまったく読み込まれません)

if (!isset($json['error']){
    //continue
}
4

2 に答える 2

6

$json配列としてアクセスしようとしているため、機能しませんが、そうではありません。これはオブジェクトなので、次を使用します。

if (!isset($json->error){
    //continue
}

致命的なエラーが発生し、500 内部サーバー エラーが発生するため、ページが読み込まれません。エラーログを確認すると、次のことがわかります。

致命的なエラー: タイプ stdClass のオブジェクトを .... の配列として使用することはできません。

于 2012-11-27T08:05:06.927 に答える
1

オブジェクトの「json文字列」を「変換」するには、json_decodeを使用する必要があります。

$j = json_decode($json);
echo $j->{'error'}

json_decode について知っておくべきことはすべてここにあります: http://php.net/manual/en/function.json-decode.php

于 2012-11-27T08:11:18.077 に答える