Wie finde ich alle Benutzer heraus, die einen meiner Tweets retweetet haben?

17

Auf der Seite "Ihre Tweets haben retweetet" auf Twitter wird angezeigt, welche Ihrer Tweets retweetet wurden. In der Regel heißt es jedoch "Retweetet von @madeuptwitteraccount und anderen". Auf diese Weise können Sie feststellen, (a) wie viele Personen einen Tweet retweetet haben und (b) Wie lauten ihre Twitter-IDs?

Christi
quelle
Dies ist im Grunde die gleiche Frage wie bei Stack Exchange unter Wie erhalte ich eine Liste aller Retweeter in Twitter?
Owen Blacker

Antworten:

4

Die bisherigen Antworten geben nur maximal 100 Retweets. Es gibt jedoch eine API-Methode, die bis zu 100 Einträge einer cursored collection zurückgibt (sodass Sie durchblättern können, um mehr zu erhalten).

Weitere Informationen finden Sie auf der Website von Twitter Developers unter GET statuses / retweeters / ids. Lesen Sie jedoch auch deren Seite über das Verwenden von Cursorn zum Navigieren in Sammlungen .

Bearbeitet, um hinzuzufügen: Das heißt, der erste Thread auf der Entwickler-Website, der in einem schnellen Google aufgetaucht ist , hat @episod , ein Twitter-Mitarbeiter, der sagt:

Sie können wahrscheinlich nicht alle erreichen. Die Daten sind verteilt. Am besten verwenden Sie die REST-API, um viele der Benutzer zu ermitteln, die den Retweet durchgeführt haben. Die Daten bleiben jedoch eingeschränkt.

Es ist am einfachsten, Retweets zu verfolgen, anstatt zu versuchen, sie aus der Vergangenheit zu finden. Verwenden Sie dazu die Streaming-API .

Quelle: wie man alle Retweets eines bestimmten Tweets erhält

Owen Blacker
quelle
3

In letzter Zeit hat Twitter viele Änderungen erfahren und mit der neuen Twitter-Website ist dies nicht möglich. Ich verwende jedoch Timeline Tweets, das eine Funktion zum Anzeigen aller retweeteten Tweets enthält.

Ich hoffe das hilft.

Peter Couch
quelle
1
Ist diese Seite ausgefallen / verschwunden?
B Seven
Weiterleitung zu facebook.com
m2j
0

Wenn Sie bereit sind, etwas zu programmieren, ist hier, wie es in Java funktionieren würde ...

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);
        }
    }
}

Dieser Code druckt jeden Tweet aus, den Sie kürzlich gemacht haben, zusammen mit den IDs der Personen, die ihn retweetet haben. Ein paar schnelle Dinge zu beachten - vor allem, dass diese Zeile:

 Twitter twitter = TwitApplicationFactory.getjoereddingtonTwitter();

Funktioniert nicht für dich - ich besorge mir meinen eigenen API-Schlüssel und so weiter, du musst deinen eigenen schreiben ...

Joe
quelle