0

tweets.jsonTwitter検索APIリクエストから返された文字列をどのようにデコードしますか? 同様の質問への回答を見てきました。tweets.jsonこれらの回答は、呼び出しを行う方法と返されたデータを表示する方法を示していますが、 API 呼び出しから返されたデータの構造を処理する問題には対処していません。コードは次のとおりです。これは twitter API を使用しています。検索結果を要求します。

<?php
require_once('../TwitterAPIExchange.php');
$settings = array(
    'oauth_access_token' => "......",
    'oauth_access_token_secret' => "......",
    'consumer_key' => "......",
    'consumer_secret' => "......"
);

$requestMethod = 'GET';

//$url = "https://api.twitter.com/1.1/statuses/user_timeline.json"; // I can decode output from this
//$getfield = "?screen_name=J7mbo&count=5"; // I can decode output from this
$url = "https://api.twitter.com/1.1/search/tweets.json"; // I can NOT decode output from this
$getfield = "?q=%23J7mbo&result_type=recent"; // I can NOT decode output from this

$twitter = new TwitterAPIExchange($settings);
$string = $twitter->setGetfield($getfield)
             ->buildOauth($url, $requestMethod)
             ->performRequest(); // from stackOverflow
$string = json_decode($string, $assoc = TRUE); // seems i cannot use json_decode for output from tweets.json
if ($string["errors"][0]["message"] != "")
{
    echo "twitter error message:" . $string[errors][0]["message"];
    exit();
}
foreach ($string as $items)
{
    echo "tweet text =[". $items['text']."]<br />";
}
?>

Twitter API タイムライン呼び出しを使用していた場合は、返されたツイートのそれぞれにjson_decodeアクセス$items['text']して使用できますが、Twitter API 検索呼び出しを使用したいのですが(tweets.json). json_decode、この検索呼び出しからのデータが適切にデコードされず、空の 2 つのみが返されます$items['text']

tweets.jsonでは、twitter API リクエストから返された文字列をデコードする最良の方法は何でしょうか?

4

2 に答える 2

0

データを調べたところ、 と という名前の 2 つの JSON エンコード文字列で構成されていることがわかりましstatusessearch_metadata。文字列を抽出し、statusesを使用してデコードできましたjson_decode

于 2015-06-17T08:57:58.993 に答える
0

$items配列を反復処理してtext、そこからプロパティを取得する必要があります。

    foreach ($items as $item) {
       echo "tweet text =[". $item['text']."]<br />";
    }
于 2015-06-16T04:56:12.490 に答える