Python-Tweepy-我需要添加什么才能使此代码回复帐户而不是关键字?

问题描述

这是我当前使用的代码,该代码立即响应包含任何关键字的任何推文。相反,我想更改此代码自动响应特定帐户(无论何时鸣叫)。我需要添加删除什么才能实现此目的?当前代码有效,我只想知道如何更改其答复。

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 REPLY HERE"
        respondToTweet(tweet,tweetId)

def setUpAuth():
    auth = tweepy.OAuthHandler("consumer_key","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(track=["KEYWORDS"])

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

解决方法

解决了!

对于想知道如何完成此操作的其他人,这是我的工作:

我在代码中更改了这一行:

func getCompanies(){
        DispatchGroup().enter()
        let db = Firestore.firestore()
        db.collection("companies").getDocuments() { (querySnapshot,err) in
            if let err = err {
                print("Error getting documents: \(err)")
            } else {
                for document in querySnapshot!.documents {
                    let company = Company(name: document.documentID,discount: document.data()["discount"] as! String,website: document.data()["website"] as! String,code: document.data()["code"] as! String,categories: document.data()["categories"] as! String)
                    LocalData.companies.companyList.append(company)
                }
            }
            DispatchGroup().leave()
        }
    }

收件人:

stream.filter(track=["KEYWORDS"])

TWITTER_ID =您要自动回复的用户的Twitter ID,可以通过将其句柄插入tweeterid.com来找到。

例如realdonaldtrump的twitter id是25073877,因此您将TWITTER_ID替换为25073877。