Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/31.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 从推特流媒体中排除回复-tweepy_Python_Api_Twitter_Streaming_Tweepy - Fatal编程技术网

Python 从推特流媒体中排除回复-tweepy

Python 从推特流媒体中排除回复-tweepy,python,api,twitter,streaming,tweepy,Python,Api,Twitter,Streaming,Tweepy,我使用tweepy从twitter的流媒体api中获取推文。然后我用这个自动回复到那个用户 例如,如果我想从唐纳德·特朗普那里获取实时推文,然后回复,我会使用: import tweepy from tweepy import Stream from tweepy.streaming import StreamListener import json class StdOutListener(StreamListener): def on_data(self, data):

我使用tweepy从twitter的流媒体api中获取推文。然后我用这个自动回复到那个用户

例如,如果我想从唐纳德·特朗普那里获取实时推文,然后回复,我会使用:

import tweepy
from tweepy import Stream
from tweepy.streaming import StreamListener

import json

class StdOutListener(StreamListener):
    def on_data(self, data):
        clean_data = json.loads(data)
        tweetId = clean_data["id"]
        tweet = "YOUR MESSAGE HERE"
        respondToTweet(tweet, tweetId)

def setUpAuth():
    auth = tweepy.OAuthHandler("consumer_token", "consumer_secret")
    auth.set_access_token("access_token", "Access_token_secret")
    api = tweepy.API(auth)
    return api, auth

def followStream():
    api, auth = setUpAuth()
    listener = StdOutListener()
    stream = Stream(auth, listener)
    stream.filter(follow=["25073877"], is_async=True)

def respondToTweet(tweet, tweetId):
    api, auth = setUpAuth()
    api.update_status(tweet, in_reply_to_status_id=tweetId, auto_populate_reply_metadata=True)

if __name__ == "__main__":
    followStream()
如果你运行我上面的代码,你会注意到它确实回复了唐纳德·特朗普,但也回复了他推文的所有新回复

我需要添加什么才能从流中排除对他的推文的回复

提前感谢您的帮助。

  • 您可以添加一个条件,仅直接从
    follow
    id响应推文
  • 这应该只允许对随后的帐户进行响应
  • 因此,在这种情况下,只有当随后的帐户回复时,响应才会是
    tweetId
  • 对于多个用户,使用中的
    测试安全壳:
    
    • 如果[25073877,id2,id3,…]中的用户id:
类StdOutListener(StreamListener):
def on_数据(自身、数据):
clean_data=json.load(数据)
tweetId=clean_数据[“id”]
用户id=清除数据['user']['id']
tweet='试图找出这个代码来回答一个问题,所以,忽略这个'
如果用户_id==25073877:
打印(“立即发送回复”)#可选
响应tweet(tweet,tweetId)

我假设您已经阅读了“是”-我之所以要修复此问题,是因为它会生成大量被视为垃圾邮件的回复。