как получить список ретвитов используя потоковый API - PullRequest
0 голосов
/ 05 августа 2011

Есть ли способ получить список идентификаторов ретвитеров с помощью потокового API

REST API имеет «GET statuses /: id / retweeted_by / ids» для получения списка ретвитеров

ПотоковоеУ api есть «statuses / retweet», но он не является общедоступным ресурсом.

Поэтому идея состоит в том, чтобы использовать «statuses / filter» и фильтровать по идентификаторам твитов.

Спасибо

1 Ответ

1 голос
/ 07 августа 2011

В результатах, возвращаемых потоковым API, ретвитеры (если есть) перечислены здесь:

$retweeters = $tweet->{'retweeted_status'}->{'activities'}->{'retweeters'};

Вот страница, на которой показаны идентификаторы ретвитов для потока, отфильтрованного с помощью поиска по слову 'love '- убедитесь, что используете ваше имя пользователя и пароль в Twitter.Обратите внимание, что API возвращают только первые 100 ретвитов.

<html><body>
<?php
    echo(str_pad("START<br>",2048));
    @ob_flush();
    flush();

    $opts = array(
        'http'=>array(
            'method'    =>  "POST",
            'content'   =>  'track=love',
            'header' => "Content-Type: application/x-www-form-urlencoded\r\n"
        )
    );

    $context = stream_context_create($opts);
    $username = 'your_twitter_username';
    $password = 'your_twitter_password';
    while (1){
        $instream = fopen('http://'.$username.':'.$password.'@stream.twitter.com/1/statuses/filter.json','r' ,false, $context);
        while(! feof($instream)) {
            if(! ($line = stream_get_line($instream, 20000, "\n"))) {
                continue;
            }else{
                $tweet = json_decode($line);
                $retweeters = array();
                $retweeters = $tweet->{'retweeted_status'}->{'activities'}->{'retweeters'};

                //We store the new post in the database, to be able to read it later
                if (sizeof($retweeters) > 0) {
                    echo("<br><br>");
                    print_r($retweeters);
                }
                @ob_flush();
                flush();
            }
        }
    }
?>
</html></body>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...