¿Cómo puedo encontrar a todos los usuarios que retuitearon un tweet mío?

17

La página "Tus tweets retweeteados" en Twitter muestra cuáles de tus tweets han sido retweeteados, pero por lo general dice algo como "retweeteado por @madeuptwitteraccount y otros". ¿Hay alguna manera de averiguar (a) cuántas personas han retwitteado un tweet y (b) ¿cuáles son sus ID de Twitter?

Christi
fuente
Esta es efectivamente la misma pregunta que en Stack Exchange en ¿Cómo obtener una lista de todos los retweeters en Twitter?
Owen Blacker

Respuestas:

4

Las respuestas hasta ahora solo te darán como máximo 100 retweets. Sin embargo, hay un método de API que devuelve hasta 100 entradas de una colección de cursos (para que pueda navegar por ella para obtener más).

Hay más información en el sitio de Desarrolladores de Twitter en GET status / retweeters / ids , aunque también querrá leer su página sobre Uso de cursores para navegar por las colecciones .

Editado para agregar: Dicho esto, el primer hilo en el sitio de Desarrolladores que apareció en un rápido google tiene @episod , un empleado de Twitter dijo:

Probablemente no puedas llegar a todos ellos. Los datos están dispersos. Su mejor opción es utilizar la API REST para determinar muchos de los usuarios que realizaron el retweet, pero los datos seguirán siendo limitados.

Es más fácil rastrear retweets a medida que ocurren en lugar de tratar de encontrarlos en el pasado. Use la API de Streaming para eso.

Fuente: cómo obtener todos los retweets de un tweet dado

Owen Blacker
fuente
3

Recientemente, Twitter ha realizado muchos cambios y con el nuevo sitio web de Twitter esto no es posible. Sin embargo, uso Timeline Tweets que tiene una función para ver todos tus tweets retuiteados.

Espero que esto ayude.

Peter Couch
fuente
1
¿Este sitio está inactivo / desaparecido?
B Seven
redirigiendo a facebook.com
m2j
0

Si está dispuesto a codificar, así es como funcionaría en 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);
        }
    }
}

Este código imprimirá cada tweet que haya hecho recientemente, junto con las ID de las personas que lo retuitearon. Un par de cosas rápidas a tener en cuenta, principalmente que esta línea:

 Twitter twitter = TwitApplicationFactory.getjoereddingtonTwitter();

No funcionará para usted: soy yo quien tiene mi propia clave API y así sucesivamente, tendrá que escribir la suya ...

Joe
fuente