Como descubro todos os usuários que retweetaram um tweet meu?

17

A página "Seus tweets retweetou" no Twitter mostra quais dos seus tweets foram retweetados, mas geralmente diz que algo como "retweetado por @madeuptwitteraccount e outros" existe alguma maneira de descobrir (a) quantas pessoas retweetaram um tweet e (b) quais são seus IDs no twitter?

Christi
fonte
Esta é efetivamente a mesma pergunta que no Stack Exchange em Como obter uma lista de todos os retweeters no Twitter?
quer

Respostas:

4

Até agora, as respostas fornecerão apenas 100 retweets no máximo. Existe um método de API que retorna até 100 entradas de uma coleção com cursores (para que você possa paginar por ela para obter mais).

Há mais informações no site do Twitter Developers em GET status / retweeters / ids , embora você também queira ler a página deles sobre o uso de cursores para navegar nas coleções .

Editado para adicionar: Dito isso, o primeiro tópico no site de desenvolvedores que apareceu em um rápido Google foi @episod , um funcionário do Twitter dizendo:

Você provavelmente não pode chegar a todos eles. Os dados estão espalhados. Sua melhor aposta é usar a API REST para determinar muitos dos usuários que realizaram o retweet, mas os dados ainda serão restritos.

É mais fácil rastrear retweets à medida que eles acontecem, em vez de tentar encontrá-los do passado. Use a API de streaming para isso.

Fonte: como obter todo o retweet de um determinado tweet

Owen Blacker
fonte
3

Recentemente, o Twitter passou por muitas mudanças e, com o novo site do Twitter, isso não é possível. No entanto, eu uso os Tweets da linha do tempo, que tem um recurso para visualizar todos os seus tweets retuitados.

Eu espero que isso ajude.

Peter Couch
fonte
1
Este site está inoperante?
B Seven
redirecionando para facebook.com
m2j
0

Se você estiver disposto a fazer alguma codificação, aqui está como ele funcionaria em 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);
        }
    }
}

Esse código imprimirá todos os tweets que você criou recentemente, juntamente com os IDs das pessoas que o retweetaram. Algumas coisas rápidas a serem observadas - principalmente que esta linha:

 Twitter twitter = TwitApplicationFactory.getjoereddingtonTwitter();

Não funcionará para você - sou eu que obtenho minha própria chave de API e assim por diante, você terá que escrever sua própria ...

Joe
fonte