我正在使用Tweepy和Python来访问Twitter API。
我想知道以下问题是否很常见,或者只是为我而发生。
我正在存储一些推文。 转推的那些存储在这个堡垒中:
RT @User [text of the tweet]
我注意到,即使用户使用"转推"也转发了该文本。按钮,文本始终以相同的格式(RT @User [text of the tweet]
)存储,当然,当Twitter API添加" RT @user
"整个文本可以超过140个字符,因此它被存储但不是全长。
如果问题不是常见错误,对于使用Tweepy的人来说,错误是来自它还是来自Twitter API?
答案 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对象下可用,截断参数将设置为原始状态的值(在大多数情况下)个案,虚假)。