即使推文被收藏,tweet.favorited也会返回false tweepy

时间:2016-11-28 17:52:54

标签: python django twitter tweepy

我想收听用户尚未发送推文的推文。为此,我写了以下内容:

     try:
        tweets = api.user_timeline(screen_name = handleSubmit,count=retweetCount)
        for tweet in tweets:
            if not tweet.favorited:
                print tweet
                api.create_favorite(tweet.id)
            if not tweet.retweeted:
                api.retweet(tweet.id)
    except Exception as e:
        raise e

但是,在某些情况下tweet.favorited会返回false,即使tweet已被收藏,也会导致以下错误:

[{u'message': u'You have already favorited this status.', u'code': 139}]

我在这里做错了什么?

1 个答案:

答案 0 :(得分:0)

假设您没有在api实例中设置缓存(缓存!=无):

class API([auth_handler=None][, host='api.twitter.com'][, search_host='search.twitter.com'][, cache=None][, api_root='/1'][, search_root=''][, retry_count=0][, retry_delay=0][, retry_errors=None][, timeout=60][, parser=ModelParser][, compression=False][, wait_on_rate_limit=False][, wait_on_rate_limit_notify=False][, proxy=None])

它可以是twitter的缓存,我怀疑或者调用返回重复的id。尝试打印所有推文ID以检查所有推文是否不同,并检查api.create_favorite(tweet.id)收藏属性是否发生变化。

顺便说一句,推文(状态模型)有一个内置的方法来收藏自己。您可以执行tweet.favorite()来收听推文。

class Status(Model):
...
    def favorite(self):
        return self._api.create_favorite(self.id)