我突然没有收到来自 Twitter 流的流数据 (requests.get(...2/tweets/search/stream))

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

我正在使用 Python 为 Twitter 开发一个截图机器人。

我的应用程序从经过过滤的流中收集推文并使用推文的图片进行回复。

昨天,我的机器人运行良好:连接到流,并进行了回复。

今天,它仍然连接到流,但 returns 什么都没有。

代码如下:

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))

我在我所知道的所有地方都搜索过关于这个问题的帮助。我减少了 request.get 行中的查询,我选择使用 with 语句,但没有任何效果。

response.text returns 什么都没有,尽管 response.status_code returns 200.

我还尝试了 2 个不同的开发者帐户进行流式验证

这是一个正在调查中的问题,与此处的具体代码无关,您最好关注the Twitter Developer Community discussion

我弄清楚了问题所在,it is a problem in the Twitter side 导致某些帐户的流式传输失败。 现在已经解决,一切正常。