Twython返回推文的假值['转推']

时间:2017-04-25 20:34:02

标签: python twitter twython

您好我刚进入Twython。我试图阻止我的脚本尝试多次转推Tweet(因为这会引发错误)

所以我想知道如果你有推文,retweeted密钥应该返回,你已经转发了那条推文。

但是我写了这个脚本:

def develop(twitter, keyword, count):
    global TweetIds, tweetInsert, FollowCounts
    results = twitter.search(q=keyword,count=count,result_type = 'popular')
    tweets = results['statuses']
    for tweet in tweets:
        if not tweet['retweeted']:
            try:
                twitter.retweet(id=tweet['id'])
            except TwythonError as e:
                print(e)

这是输出

Twitter API returned a 403 (Forbidden), You have already retweeted this tweet.
Twitter API returned a 403 (Forbidden), You have already retweeted this tweet.
Twitter API returned a 403 (Forbidden), You have already retweeted this tweet.
Twitter API returned a 403 (Forbidden), You have already retweeted this tweet.
Twitter API returned a 403 (Forbidden), You have already retweeted this tweet.
Twitter API returned a 403 (Forbidden), You have already retweeted this tweet.
Twitter API returned a 403 (Forbidden), You have already retweeted this tweet.
Twitter API returned a 403 (Forbidden), You have already retweeted this tweet.

所以tweet['retweeted']确实返回了false,即使它应该是true
我做错了什么?

1 个答案:

答案 0 :(得分:0)

如果您要检查您看到的推文是原创的还是转发的,请使用密钥'retweeted'。例如,如果我发帖并且您检查我的帖子'retweeted'将是False,但如果我转发给其他人,则'retweeted'的值将为True

我对防止多次转发的想法是在文本文件中编写推文ID,并在每次转发文件时检查您是否已经转发过。我知道这根本没有效率,但我不确定任何其他解决方案。为了使速度更快,您可以每天创建一个新文本,以最大限度地减少您要检查的ID数量。我希望我帮助你