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