获取完整转发的推文

时间:2014-05-04 10:35:02

标签: python twitter tweepy

我正在使用Tweepy和Python来访问Twitter API。

我想知道以下问题是否很常见,或者只是为我而发生。

我正在存储一些推文。 转推的那些存储在这个堡垒中:

RT @User [text of the tweet]

我注意到,即使用户使用"转推"也转发了该文本。按钮,文本始终以相同的格式(RT @User [text of the tweet])存储,当然,当Twitter API添加" RT @user"整个文本可以超过140个字符,因此它被存储但不是全长。

如果问题不是常见错误,对于使用Tweepy的人来说,错误是来自它还是来自Twitter API?

2 个答案:

答案 0 :(得分:5)

转推是一种特殊类型的推文,其中包含一个名为" retweeted_status"的额外节点。 原始推文的原始未经改动的推文文本位于retweeted_status的文本字段中,而不是传统推文中最顶级的文本字段。

尝试以下,

import tweepy
import urllib2
import json
consumer_key='#'
consumer_secret='#'
access_token_key='#'
access_token_secret='#'
auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token_key, access_token_secret)
api = tweepy.API(auth)

public_tweets = api.user_timeline(screen_name="@HandleHere",count=25,page=1,include_rts=True)
all_items=[]
[all_items.append(i) for i in public_tweets]

for i in all_items:
    try:
        if i.retweeted_status:
            print i.retweeted_status.text
    except:
        pass

它将打印完整的转发推文。

答案 1 :(得分:1)

这不是错误,而是正常行为。引用截断字段的the tweeter documentation

  

指示text参数的值是否被截断,例如,由于转发超过140个字符的Tweet长度。截断的文本将以省略号结尾,如下所示......

     

[...]

     

请注意,虽然原生转推可能会缩短其顶级文本属性,但原始文本将在retweeted_status对象下可用,截断参数将设置为原始状态的值(在大多数情况下)个案,虚假)。