我如何找出所有转发了我的tweet的用户?


17

Twitter上的“您的推文已转发”页面显示您的哪些推文已被转发,但通常会说“由@madeuptwitteraccount和其他人转发”之类的内容,可以找出(a)有多少人转发了一条推文,并且(b)他们的Twitter ID是什么?


这实际上是与Stack Exchange上相同的问题,在如何获取Twitter中所有转发者的列表?
Owen Blacker

Answers:


4

到目前为止,答案最多只会给您100条转发。不过,有一个API方法可返回最多100个游标集合的条目(因此您可以对其进行分页以获得更多信息)。

尽管您还希望阅读其有关使用游标导航集合的页面,但Twitter Developers网站上的GET statuss / retweeters / ids上有更多信息。

编辑添加: 也就是说,开发人员站点上第一个出现在快速谷歌上的线程有@episod,Twitter员工说:

您不可能全部都使用。数据散开。最好的选择是使用REST API确定执行转推的许多用户,但是数据仍然会受到限制。

跟踪转发发生的最简单方法,而不是尝试从过去查找转发。为此使用流API

来源:如何获取给定推文的所有转推


3

最近,Twitter进行了很多更改,而使用新的Twitter网站则无法实现。但是,我使用时间轴推文,该功能具有查看所有转发的推文的功能。

我希望这有帮助。


1
该网站是否关闭/消失?
B 7年

重定向到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);
        }
    }
}

该代码将打印出您最近进行的每条推文,以及转发该推文的人的ID。需要注意的几个快速事项-主要是这一行:

 Twitter twitter = TwitApplicationFactory.getjoereddingtonTwitter();

不会为您工作-那是我得到自己的API密钥,依此类推,您必须编写自己的API密钥...

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.