Tweepy - API会话可以保持打开多长时间

时间:2017-10-14 01:44:51

标签: python python-2.7 twitter tweepy

我有一个脚本,我希望它基本上无限期地运行,它的作用是监视API并在满足某些条件时发送推文。该脚本看起来像这样

while True:
    #API CONDITION CHECKS HERE
    if api_condition_check:
        auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
        auth.set_access_token(access_token, access_token_secret)
        api = tweepy.API(auth)
        tweet = "This is the tweet."
        if api.update_status(tweet):
            print "Tweet Succeeded"
    sleep(60)

该脚本在运行时设置套接字,并且有一个cron作业检查锁并重新启动脚本以处理崩溃,服务器重新启动等。

我不确定的是,我是否可以将api创建元素置于永久运行的while循环之外,而不会使api对象超时或其他东西。所以基本上代码看起来像这样

auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_token_secret)
api = tweepy.API(auth)

while True:
    #API CONDITION CHECKS HERE
    if api_condition_check:
        tweet = "This is the tweet."
        if api.update_status(tweet):
            print "Tweet Succeeded"
    sleep(60)

第二种方式意味着代码不必每次都重新创建api对象,但它可能是推文之间的数小时,代码可以一次运行几周,假设没有错误或服务器问题,因此api对象超时如果它只在脚本启动时创建?

1 个答案:

答案 0 :(得分:1)

  

如果只在脚本启动时才创建api对象超时吗?

根据我的经验,没有。 Tweepy正在做的就是把钥匙和钥匙拿走。令牌并使用它来签署您提出的任何请求。

唯一的问题是,如果您(或您的用户)通过转到Twitter的设置并撤消该应用来删除授权。