1

次のコードを使用して、Twitterアカウントからの最新のツイートを解析しています。

    $host = "http://search.twitter.com";
    $filename = "/search.json";

    $opts = array('http' => array(
        'method'=>"GET",
        'header'=>"Accept-language: en\r\n"
    ));
    $context = stream_context_create($opts);

    $search = "mashable";
    $search = str_replace(" ", "%20", $search);
    $count = "10";

    $a = "$host$filename?q=$search&rpp=$count&include_entities=true";
    echo "$a\n";
    $json = file_get_contents($a, false, $context);

    $obj = json_decode($json, true);
    $id = $obj['results'][0]['id'];
    $tweet = $obj['results'][0]['text'];
    $user = $obj['results'][0]['from_user'];
    $to_user = $obj['results'][0]['to_user'];
    $media_url = $obj['results'][0]['media_url'];

    #echo $json;
    echo "<br /><br />";
    echo "searching for $search\n tweet count: $count\n";
    echo "<br /><br /><b>tweets</b><br />";
    echo "tweet_id: $id <br />";
    echo "user: $user <br />";
    echo "Tweet: $tweet<br />";
    echo "to_user: $to_user <br />";
    echo "media: $media_url";
    echo ""

?>

次の値を抽出したいと思います。-ユーザー名(送信者)-ツイート(テキスト)-ユーザーへ(返信の場合)-メディアの添付ファイル(写真)

コードは機能していますが、何らかの理由で、数値($ count)の値ではなく、最新のツイートしか受信していません。ツイートのmedia_url値も受信できません。私の質問は:どうやって?

4

2 に答える 2

1

たとえば、結果の1つではなくすべての結果を取得するには、結果をループする必要があります。

$host = "http://search.twitter.com";
$filename = "/search.json";

$opts = array('http' => array(
    'method'=>"GET",
    'header'=>"Accept-language: en\r\n"
));
$context = stream_context_create($opts);

$search = "mashable";
$search = str_replace(" ", "%20", $search);
$count = "10";

$a = "$host$filename?q=$search&rpp=$count&include_entities=true";
echo "$a\n";
$json = file_get_contents($a, false, $context);

$obj = json_decode($json, true);

foreach ($obj['results'] as $index => $result) {
    $id = $result['id'];
    $tweet = $result['text'];
    $user = $result['from_user'];
    $to_user = $result['to_user'];
    $media_url = $result['media_url'];

    #echo $json;
    echo "<br /><br />";
    echo "searching for $search\n tweet count: $count\n";
    echo "<br /><br /><b>tweets</b><br />";
    echo "tweet_id: $id <br />";
    echo "user: $user <br />";
    echo "Tweet: $tweet<br />";
    echo "to_user: $to_user <br />";
    echo "media: $media_url";
    echo "";
}

また、私が行ったとき、そこに値が表示されprint_r($obj);ませmedia_urlんでした-Twitterがそれを返しているようには見えないため、アクセスできません。

于 2013-01-22T10:36:42.337 に答える
0

各ツイートのmedia_urlパラメーターを受け取るための解決策を見つけました:

$media_url = $result['entities']['media'][0]['media_url']
于 2013-01-22T12:19:30.293 に答える