gpt4 book ai didi

python - 使用 Flask socketio 进行 Tweepy 流式传输

转载 作者:太空宇宙 更新时间:2023-11-03 14:16:25 25 4
gpt4 key购买 nike

我想在收到推文时将实时推文流发送给客户端。

app = Flask(__name__)
app.config['SECRET_KEY'] = 'secret!'
socketio = SocketIO(app)



class MyStreamListener(tweepy.StreamListener):
def on_status(self, status):
MyCustomNamespace.tweet_received(status.text)


class MyCustomNamespace(Namespace):
def on_connect(self):
auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_secret)
api = tweepy.API(auth)
myStreamListener = MyStreamListener()
global myStream
myStream = tweepy.Stream(auth = api.auth, listener=myStreamListener)
myStream.filter(track=['love'], async=True)

def on_disconnect(self):
pass

@staticmethod
def tweet_received(text):
emit('tweet_response', {'text': text})

socketio.on_namespace(MyCustomNamespace('/'))

但是我在运行此程序时收到运行时错误:在请求上下文之外工作错误。我该如何去做我想做的事?谢谢。

最佳答案

您在 tweet_received() 中进行的 emit() 调用没有客户端上下文来知道将数据发送到哪里。

您可以通过添加用于设置事件的命名空间和收件人的其他参数来修复此问题。例如:

@staticmethod
def tweet_received(text):
emit('tweet_response', {'text': text}, broadcast=True, namespace='/')

此版本将发送给 / 命名空间上的所有客户端。您可能需要将其更改为最适合您的应用程序的内容,但希望您能明白这一点。

关于python - 使用 Flask socketio 进行 Tweepy 流式传输,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48214364/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com