Come faccio a scoprire tutti gli utenti che hanno ritwittato un mio tweet?


17

La pagina "I tuoi tweet ritwittati" su Twitter mostra quali dei tuoi tweet sono stati ritwittati, ma di solito dice qualcosa come "Retweeted da @madeuptwitteraccount e altri" c'è un modo per scoprire (a) quante persone hanno ritwittato un tweet e (b) quali sono i loro ID twitter?


Questa è effettivamente la stessa domanda di Stack Exchange su Come ottenere un elenco di tutti i retweet in Twitter?
Owen Blacker,

Risposte:


4

Le risposte finora ti daranno solo al massimo 100 retweet. Esiste un metodo API che restituisce fino a 100 voci di una raccolta con cursori (quindi puoi sfogliarla per ottenerne altre).

Ci sono ulteriori informazioni sul sito degli sviluppatori di Twitter negli stati / Retweet / ID GET , anche se vorrai anche leggere la loro pagina sull'uso dei cursori per navigare tra le raccolte .

Modificato per aggiungere: Detto questo, il primo thread sul sito degli sviluppatori che è emerso in un veloce google ha @episod , un dipendente di Twitter che dice:

Probabilmente non puoi raggiungerli tutti. I dati sono diffusi. La soluzione migliore è utilizzare l'API REST per determinare molti degli utenti che hanno eseguito il retweet, ma i dati saranno comunque vincolati.

È più facile tenere traccia dei retweet mentre accadono piuttosto che cercare di trovarli dal passato. Usa l' API Streaming per questo.

Fonte: come ottenere tutti i retweet di un determinato tweet


3

Di recente Twitter ha apportato molte modifiche e con il nuovo sito Web di Twitter questo non è possibile. Tuttavia, utilizzo i Tweet della timeline che ha una funzione per visualizzare tutti i tuoi tweet ritwittati.

Spero che questo possa essere d'aiuto.


1
Questo sito è inattivo / andato?
B Seven,

reindirizzamento a facebook.com
m2j

0

Se sei disposto a fare un po 'di codice, ecco come funzionerebbe in 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);
        }
    }
}

Questo codice stamperà tutti i tweet che hai fatto di recente, insieme agli ID delle persone che lo hanno ritwittato. Un paio di cose veloci da notare - principalmente che questa linea:

 Twitter twitter = TwitApplicationFactory.getjoereddingtonTwitter();

Non funzionerà per te - sono io che ottengo la mia chiave API e così via, dovrai scrivere la tua ...

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.