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.