为什么我知道的推文喜欢使用tweepy api返回他们最喜欢的数量?

时间:2017-10-03 02:55:31

标签: python twitter tweepy

基本上,当我循环推文时,我知道已经"喜欢"通过在Twitter上看到它们并打印它们最喜欢的计数属性,计数总是为0.喜欢的数量与喜欢的数量不一样/为什么最喜欢的数量始终为0 /如何获得推特的喜欢数量?

现在我正在做以下事情:

print(the_tweet.favorite_count)

我打印时:

print(dir(the_tweet)) 

我看到很多与推文相关的内容,包括retweet_count和favorite_count,但没有看起来像" like_count"。

3 个答案:

答案 0 :(得分:0)

我刚用过这个并为我工作过。我遇到了同样的问题,之所以发生这种情况,是因为我使用了'tweepy',它在json api中返回了favorite_count的两个值,一个值为正确值,另一个值为“0”。当你使用'Twython'时,它只返回一个值,第一个值。

pip install twython
from twython import Twython

id_of_tweet = <tweet_number_id>

CONSUMER_KEY = "<consumer key>"
CONSUMER_SECRET = "<consumer secret>"
OAUTH_TOKEN = "<application key>"
OAUTH_TOKEN_SECRET = "<application secret>"

twitter = Twython(CONSUMER_KEY, CONSUMER_SECRET, OAUTH_TOKEN, 
OAUTH_TOKEN_SECRET)
tweet = twitter.show_status(id=id_of_tweet)
print(tweet)
print(tweet['retweet_count'])
print(tweet['favorite_count'])

这个解决方案的一部分就是这个问题:Twitter API - get tweets with specific id

答案 1 :(得分:0)

我遇到了同样的问题,favorite_count显示了您自己的推文的赞,而the_tweet对象是您的user_timeline对象,它是推文和转推的混合物。因此,您需要检查是否存在retweeted_status,以及是否存在favorite_count(用于转发的推文)在此列表下。请在下面查看我的示例:

def user_tweets(count):
    '''
    This function uses tweepy to read the user's twitter feed. 
    '''
    auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
    auth.set_access_token(access_token, access_token_secret)
    api = tweepy.API(auth)
    # user = api.get_user(twitter_user_name)

    user_tweets = api.user_timeline(twitter_user_name, count=count)
    return user_tweets

user_tweets(4)# returns your latest 4 tweets and retweets

#to list the number of likes for each tweet and retweet:
for tweet in user_tweets: 
    try: 
        print(tweet.retweeted_status.favorite_count) 
    except: 
        print(tweet.favorite_count)

如果您使用的是Django模板标签,则可以使用以下内容:

            {% if tweet.retweeted_status %}
            <small>{{ tweet.retweeted_status.favorite_count }}</small>
            {% else %}
            <small>{{ tweet.favorite_count }}</small>
            {% endif %}

答案 2 :(得分:0)

我遇到了类似的问题。对我来说,问题是推文是转推,处理如下。包括一个新的 tweet.fields 值 referenced_tweets 和 public_metrics,它将返回任何引用的推文作为 ID。然后在新调用(同一路由)中使用此 ID 和 public_metrics 来获取转发推文的真实指标。