【问题标题】:Twitter API: Check if a tweet is a retweetTwitter API:检查推文是否为转推
【发布时间】:2013-09-23 01:30:17
【问题描述】:

我找到了this question。不过我认为这在 API 1.1 版上有所改变。

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

【问题讨论】:

    标签: twitter


    【解决方案1】:

    如果是转推,则推文将包含名为 retweeted_status 的属性。完整地说,如果推文不是转推,retweeted_status 将不会出现。更多信息请访问:Tweets

    【讨论】:

    • 简写为hasattr(tweet, 'retweeted_status'),其中tweettweepy.Status的实例
    【解决方案2】:

    只需检查属性名称

    “转推状态”

    如果没有找到,则不是 RT。

    【讨论】:

      【解决方案3】:

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

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

      请参阅:https://twitter.com/gppvt/status/474162466776449024 这将重定向(因为它是转推)到原始推文。但是,如果您通过 twitter API 获得这条推文,则它有 retweeted_status。注意文本不包含“RT”。

      【讨论】:

        【解决方案4】:

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

        转发@

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

        【讨论】:

        • 这还不够;用户可以在他们的推文中输入“RT@”,从 Twitter API 的角度来看,这不是真正的转发。
        • 这是在 twitter 实施官方 RT 之前的“旧”传统 RT 方式。如上所述,retweeted_status 属性的存在表明推文是 RT。另请参阅developer.twitter.com/en/docs/tweets/data-dictionary/overview/… 的 Twitter 文档
        【解决方案5】:

        如果收到的推文被转发,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】:

          只是补充一点。 (使用 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
          

          【讨论】:

            【解决方案7】:

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

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

            【讨论】:

              【解决方案8】:

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

              【讨论】:

                【解决方案9】:

                对于使用Hydrator1 并依赖其CSV 导出水合JSONL 文件的人:您可以检查reweet_id(不,这不是版本0.0.12 中的错字),如果是NA,那么它就是我发现的原始推文。

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

                【讨论】:

                  猜你喜欢
                  • 2018-10-07
                  • 1970-01-01
                  • 2011-10-20
                  • 2011-05-05
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  相关资源
                  最近更新 更多