Skip to content
Advertisement

I suddenly receive no stream data from Twitter stream (requests.get(…2/tweets/search/stream))

I’m working on a screenshot bot for Twitter using Python.

My app collects tweet from a filtered stream and replies with an image of the tweet.

Yesterday, my bot worked well: connected to stream, and made replies.

Today, it still connects to stream but returns nothing.

Here is the code:

def get_stream(set):
    with requests.get(f"https://api.twitter.com/2/tweets/search/stream?tweet.fields=id,author_id&user.fields=id,username&expansions=author_id,referenced_tweets.id", auth=bearer_oauth, stream=True) as response:
        print(response.status_code)
        if response.status_code == 429:
            print(f"returned code 429, waiting for 60 seconds to try again")
            print(response.text)
            time.sleep(60)
            return
        if response.status_code != 200:
            raise Exception(
                f"Cannot get stream (HTTP {response.status_code}): {response.text}"
                        )
        for response_line in response.iter_lines():
            if response_line:
                print(here)
                json_response = json.loads(response_line)
                print(json.dumps(json_response, indent=4))

I’ve searched everywhere I know for help on this issue. I’ve reduced the queries in my request.get line, I’ve chosen to use a with statement, nothing works.

response.text returns nothing at all, even though response.status_code returns 200.

I have also tried 2 different developer accounts for streaming authentication

Advertisement

Answer

I figured out what the problem was, it is a problem in the Twitter side that caused streaming to fail for some accounts. It has been resolved now and everything works fine.

User contributions licensed under: CC BY-SA
3 People found this is helpful
Advertisement