Twitter API:检查推文是否是转发

时间:2013-09-18 10:22:31

标签: twitter

我找到了this question。但是我认为API版本1.1已经发生了变化。

如果我使用search/tweets方法,我怎么能看到推文是否是RT? 我看到retweeted字段始终返回false。我可以用另一个字段来回答这个问题吗?

9 个答案:

答案 0 :(得分:33)

如果是转推,则推文将包含名为retweeted_status的属性。要完成,如果推文不是转发,则不会显示retweeted_status。更多信息:Tweets

答案 1 :(得分:4)

只需检查属性名称

即可

<强>&#34; retweeted_status&#34;

如果您没有找到,那么它不是RT。

答案 2 :(得分:3)

正如@Joe Mayo所说,检查状态对象上的retweeted_status键。

我有一个例子没有被@Apoorv Ashutosh的建议所抓住。

请参阅:https://twitter.com/gppvt/status/474162466776449024这将重定向(因为它是转推)原始推文。但是,如果您通过Twitter API获得此推文,则其为retweeted_status。请注意,该文本不包含&#34; RT&#34;。

答案 3 :(得分:2)

如果转发未使用转推按钮完成转发,而是通过RT转移,则转发的字段为false,因此在这种情况下,只需搜索所有推文的“文本”字段以获取此模式

RT @

这种模式可能有所帮助,但我认为没有任何其他功能。

答案 4 :(得分:1)

只是添加一点。 (使用twitter gem(ruby语言))

您可以通过检查推文然后从retweeted_status散列中获取所需内容来检查它是否转发

t = client.status(#########) #function that obtains tweet based on ID where # = tweet ID
puts t.retweeted_status? # returns true or false
t.retweeted_status # returns the actual hash for that

答案 5 :(得分:1)

如果收到的推文被转发,则retweeted_status属性将存在,​​否则您将收到AttributeError错误。在这种情况下,你想摆脱转推的推文:

def on_status(self, status):
    try:
        print "Retweeted ************* \n" + str(status.retweeted_status)
        return 
    except AttributeError:
        print "there is no attribut with name retweeted_status"

答案 6 :(得分:0)

正如其他所有人所提到的,您可以检查该Tweet的响应子字段中是否存在retweeted_status属性。

However, per the current version of the API,每个Tweet对象都有一个字段retweeted,该字段存储一个布尔值(True或False),该值将告诉您Tweet是否已转推。

答案 7 :(得分:0)

确保您的“重新推文”实际上不是另一条推文的引文。在这种情况下,我必须使用quoted_status字段来获取原始的tweet,而不是retweeted_status

答案 8 :(得分:0)

对于使用Hydrator 1并依靠其CSV导出水合JSONL文件的用户:您可以检查reweet_id(不是不是版本0.0.12的错字,如果是NA,那是我发现的原始推文。

original_twitter_tweets = twitter_csv_data %>% filter(is.na(reweet_id))