【发布时间】:2019-04-01 13:21:19
【问题描述】:
我曾经有一些可以在 Tweepy 流监听器上自动回复的运行良好的 Python,但由于 8 月份 Twitter API 的变化,它不再工作了。
我正在重建它,每 10 秒获取一次我最近的提及(理想情况下,它会更少,因为我想做近乎即时的回复),并检查它是否在最后 10 秒内......如果然后脚本假定它是一条新推文并回复。
from tweepy import OAuthHandler
from tweepy import API
from datetime import datetime, time, timedelta
consumer_key = ''
consumer_secret = ''
access_token = ''
access_token_secret = ''
account_screen_name = ''
account_user_id = '897579556009332736'
auth = OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_token_secret)
twitterApi = API(auth)
mentions = twitterApi.mentions_timeline(count=1)
now = datetime.now()
for mention in mentions:
if now < (mention.created_at + timedelta(hours=1) + timedelta(seconds=10)):
print "there's a mention in the last 10 seconds"
# do magic reply stuff here!
else:
print "do nothing, no recent tweets/the last mention was more than 10 seconds ago so it isn't new"
这可以每 12 秒循环一次;但是再少一点,它就会达到速率限制(即上面的这种方法在 10 秒时最终会达到速率限制)......所以,有没有更好的方法来检索最近的提及,以便根据提到?我觉得我可能以一种非常低效的方式执行此操作(例如,此方法实际上得到了最后 20 次提及!!)并且 API 可能有一个更好的方法,我可以更频繁地执行而不会达到速率限制?
【问题讨论】:
标签: python python-2.7 twitter tweepy rate-limiting