Twitter API not showing old tweets?

后端 未结 5 2055
悲哀的现实
悲哀的现实 2020-12-09 11:55

I have a problem with twitter API. I tweeted in the past (around 400) but recently I haven\'t tweeted anything. When I try to fetch tweets by me using the twitter api, there

相关标签:
5条回答
  • 2020-12-09 12:07

    Twitter doesn't return tweets older than a week through search api. Take a look at the limitations section from the below link:

    https://dev.twitter.com/docs/using-search

    0 讨论(0)
  • 2020-12-09 12:07

    This is possible in Twitter web search portal but not through their API. Bummer https://twitter.com/search-home

    0 讨论(0)
  • 2020-12-09 12:09

    I have the same problem as you, so after see that Twitter Web Search works I've started to implement my own solution, you can see on my GitHub. It is implemented in Java, but it will make a post on my blog to explain how to do in other languages. I've downloaded tweets without any problems, my last test I parse more than 600k within 2014 from some specific users.

    0 讨论(0)
  • 2020-12-09 12:22

    You can use the REST API resource GET statuses/user_timeline to retrieve the most recent 3200 tweets from any public timeline.

    0 讨论(0)
  • 2020-12-09 12:23

    This elaborates on @bennett-mcelwee 's answer where getting up to 3200 most recent user tweets can be done in series of API calls. Currently the max # of tweets you can get by a user in 1 request is 200, using the GET statuses/user_timeline API call. To get all tweets a user has posted on their timeline do the following:

    STEP 1

    Make a GET call to this endpoint passing parameter count=200.

    STEP 2

    From the returned data in step 1, get the ID of the last tweet

    Make the same GET call but this time pass in parameter max_id= followed by the ID of last tweet returned form the first call, or -1. So for example max_id=9987999

    STEP 3

    Repeat step 2 until you don't get any new(older) data.

    For my purpose I was able to do this in Ruby using https://github.com/sferik/twitter

    Once a client object is instantiated, it's as simple as:

    tweets = client.user_timeline('foobar', count: 200)
    max_id = tweets.last.id - 1
    tweets << client.user_timeline('foobar', count: 200, max_id: max_id)
    

    From here you get idea and it's fairly trivial to write a loop until you've gotten all the tweets you can grab from the API.

    0 讨论(0)
提交回复
热议问题