Как мне узнать всех пользователей, которые ретвитнули мой твит?


17

На странице «Ваши ретвиты в Твиттере» в Твиттере показано, какие из ваших твитов были ретвитнуты, но обычно там говорится что-то вроде «ретвитнуло @madeuptwitteraccount и другими», есть ли способ узнать (а), сколько людей ретвитнули твит и (б) каковы их твиттер-идентификаторы?


По сути, это тот же вопрос, что и на Stack Exchange в разделе Как получить список всех ретвитов в Twitter?
Оуэн Блэк

Ответы:


4

Ответы пока дадут вам не более 100 ретвитов. Однако есть метод API, который возвращает до 100 записей в курсорной коллекции (так что вы можете просмотреть ее, чтобы получить больше).

Более подробную информацию можно найти на сайте разработчиков Твиттера по адресу GET statuses / retweeters / ids , хотя вы также захотите прочитать их страницу об использовании курсоров для навигации по коллекциям .

Отредактировано, чтобы добавить: Тем не менее, первая ветка на сайте разработчиков, появившаяся в быстром Google, имеет @episod , сотрудник Twitter, который говорит:

Вы не можете, вероятно, добраться до всех из них. Данные разложены. Лучше всего использовать API REST для определения многих пользователей, которые выполняли ретвит, но данные по-прежнему будут ограничены.

Проще всего отслеживать ретвиты по мере их появления, чем пытаться найти их из прошлого. Используйте Streaming API для этого.

Источник: как получить все ретвиты данного твита


3

В последнее время в Твиттере произошло много изменений, и с новым сайтом в Твиттере это невозможно. Тем не менее, я использую Timeline Tweets, который имеет функцию для просмотра всех ваших твитов, ретвитнутых.

Надеюсь, это поможет.


1
Этот сайт не работает?
B Семь

перенаправление на facebook.com
m2j

0

Если вы хотите сделать кодирование, вот как это будет работать в Java ...

package twitone;

import java.util.ArrayList;
import java.util.Map;

import twitone.structure.BaseTwitterClass;
import twitone.structure.TwitApplicationFactory;
import twitter4j.Paging;
import twitter4j.RateLimitStatus;
import twitter4j.Status;
import twitter4j.Twitter;
import twitter4j.TwitterException;

public class MyRetweeters extends BaseTwitterClass {

    private Twitter twitter;

    public MyRetweeters(Twitter twitter) {
        this.twitter = twitter;
    }

    public static void main(String[] args) throws TwitterException {

        Twitter twitter = TwitApplicationFactory.getjoereddingtonTwitter();
        MyRetweeters unit = new MyRetweeters(twitter);
        String temp[] = unit.get();
        for (String string : temp) {
            System.out.println(string);
        }
    }

    public String[] get() {
        ArrayList<String> names = new ArrayList<String>();
        try {
            for (Status status : twitter.getUserTimeline(new Paging(1, 200))) {
                System.out.println(status.getText());
                if (status.getText().startsWith("RT")) {
                    // skip
                } else if (status.getRetweetCount() > 0) {
                    // Because I don't want to breach
                    // Twitter's rate limits
                    // okay the below has been added to keep within the rate
                    // limited.
                    waitUntilICanMakeAnotherCall();
                    // end keeping within rate limit code.
                    for (Status rt : twitter.getRetweets(status.getId())) {
                        names.add(rt.getUser().getScreenName());
                        System.out.println("---"+rt.getUser().getScreenName());
                    }
                }
            }
        } catch (TwitterException e) {
            e.printStackTrace();
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        return names.toArray(new String[names.size()]);
    }

    /**
     * @throws TwitterException
     * @throws InterruptedException
     */
    protected void waitUntilICanMakeAnotherCall() throws TwitterException, InterruptedException {
        {
            Map<String, RateLimitStatus> temp = twitter.getRateLimitStatus();

            RateLimitStatus temp2 = temp.get("/statuses/retweets/:id");
            System.out.println(temp2.getRemaining());
            if (temp2.getRemaining() == 0) {
                Thread.sleep((temp2.getSecondsUntilReset() + 5) * 1000);
                return;
            }
            System.out.println(temp2.getSecondsUntilReset());
            int secondstosleep =1+ temp2.getSecondsUntilReset() / temp2.getRemaining();
            System.out.println(secondstosleep);
            Thread.sleep(secondstosleep * 1000);
        }
    }
}

Этот код будет распечатывать каждый твит, который вы сделали недавно, вместе с идентификаторами людей, которые ретвитнули его. Несколько быстрых вещей, на которые стоит обратить внимание - в основном это строка:

 Twitter twitter = TwitApplicationFactory.getjoereddingtonTwitter();

Не сработает для вас - это я получаю свой собственный ключ API и так далее, вам придется написать свой собственный ...

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.