【问题标题】:How to Exclude retweets and replies in a search api?如何在搜索 api 中排除转发和回复?
【发布时间】:2015-03-12 13:51:42
【问题描述】:

如何在搜索 api 中排除转发和回复?

我正在尝试使用搜索 api 从 twitter 获取提要,结果我也收到了回复和转发。

所以我想排除回复和排除。

如何做任何人帮助我。

这是我的网址:

https://api.twitter.com/1.1/search/tweets.json?q=from:rioferdy5&count=20&result_type=recent

【问题讨论】:

    标签: javascript twitter twitter-oauth


    【解决方案1】:

    没有直接的方法可以从 api 中排除转发和回复。但是,您可以过滤掉您得到的结果。

    对于回复,您可以检查您从 api 获得的in_reply_to_status_id 字段是否为空,这意味着它不是回复,否则如果它包含一个 id,那么它就是一个回复。

    对于转发,如果您想要从未转发过的帖子,您可以检查retweet_count = 0 或者如果您想要您的认证用户尚未转发的帖子,您可以检查retweeted = false

    【讨论】:

    • 我的结果中没有“转发”,即使经过身份验证的帐户转发了它。
    【解决方案2】:

    我相信以上是不正确的,您可以在搜索 API 中使用过滤器,但文档很差(不存在?)。

    您的查询将变为:

    ?q=from:rioferdy AND -filter:retweets AND -filter:replies&count=20&result_type=recent
    

    更多过滤技巧在这里获得:How to Master Twitter Search: Basic Boolean Operators and Filters

    【讨论】:

    • 我相信这只会让您回复。删除 - 并使用“过滤器:回复”排除回复
    • 感谢您的回答。这正是。
    【解决方案3】:

    根据official documentation

    传递以下参数exclude_replies=true

    【讨论】:

    • 这是针对用户的时间线,而不是搜索 API。
    【解决方案4】:

    对不起,我在这里聚会迟到了。我同意 Hitesh 的观点,因为他们没有提供一种本地排除转发的方法,但是每条转发的推文在返回的 json 中都有一个转发对象。因此,您可以遍历您的推文并排除任何具有 retweeted_status typeof 'object' 的推文(意味着它们是来自其他人的转发)或保留那些具有 typeof 'undefined' 的推文(意味着它们是原始的)。 retweet_count=0 的问题是,像 @pattonoswalt 这样的人会在他的所有推文上转发。因此,即使它们都是原始的,计数也永远不会为零。

    你可以在循环中使用类似的东西:

    if(typeof tweets[i].retweeted_status === 'object') {tweets.splice(i,1);}

    if(typeof tweets[i].retweeted_status !== 'undefined') {tweets.splice(i,1);}

    【讨论】:

      【解决方案5】:

      旧帖子,但人们可能仍会偶然发现它。

      这里记录了大多数查询运算符:https://dev.twitter.com/rest/public/search

      但是对于search/tweets 方法,您还可以指定exclude:replies 和/或exclude:retweets 以从结果中过滤掉回复和转发。

      只需在API Console Tool 中测试它,然后自己看看。

      奖励:另一个未记录的查询运算符是 filter:verified,用于从经过验证的用户那里获取推文。

      查询示例:cats filter:vine filter:verified exclude:replies exclude:retweets

      【讨论】:

      【解决方案6】:

      是的,您可以在搜索 API 期间通过在搜索字符串 (q) 中添加 -RT 来排除转发。例如:search?q="#demo -RT"

      【讨论】:

      • 我认为您的示例 -RT_RT 中有错误?
      • @Canis,它的-RT
      • 这个为我修好了!
      【解决方案7】:

      回复很晚,和其他人一样,但我觉得保罗在这里的第二个回答应该是“正确”的一个。我希望 twitter 能更好地记录这一点,或者让它更广为人知,但是你可以做大量的搜索过滤器,即使在 2018 年使用他们的标准 API。

      https://developer.twitter.com/en/docs/tweets/rules-and-filtering/overview/standard-operators

      这是一个相当全面的示例列表 :) 转发在中间的某个地方。

      -filter:retweets
      

      【讨论】:

        【解决方案8】:

        官方文档中记录了这是允许的

        puppy -filter:retweets  containing “puppy”, filtering out retweets
        

        https://developer.twitter.com/en/docs/tweets/rules-and-filtering/overview/standard-operators.html

        【讨论】:

          【解决方案9】:

          只需使用 nitter.net 它允许您从搜索结果中排除某些内容(通过其搜索栏右端的高级搜索选项),它甚至提供自己的 RSS 提要。最重要的是,它扩展了这些 t.co 短 URL,并将 youtube URL 替换为 invidio.us URL

          最后,您可以通过名为 Huginn 的自托管界面将您的 RSS 提要用作其他网络小程序的触发器

          【讨论】:

            【解决方案10】:

            在新的 v2 API 中搜索如何执行此操作时发现此问题,现在是 puppy -is:retweet -is:reply(也不再需要 ANDs)

            https://developer.twitter.com/en/docs/twitter-api/tweets/search/integrate/build-a-query#list

            【讨论】:

              【解决方案11】:

              在新的 Search Tweets API 中,包含以下参数将删除不同风格的转发:
              -is:retweet 排除转发
              -is:quote 排除引用推文
              -is:reply 排除回复

              请在此处查看 API 文档:Search Tweets - Build a Query

              只有 Mike Chen 的回答(奇怪的是,在我投票之前只有 0 个投票)是正确的。由于 Twitter API v2 的推出,此处的其余答案已过时。我会直接评论迈克的回答,但我没有足够的声誉。

              【讨论】:

              • 抱歉,我知道这有时很麻烦,但唯一的选择就是等到您可以发表评论。
              • @GertArnold ?%!
              猜你喜欢
              • 2019-10-13
              • 2021-05-26
              • 2011-11-16
              • 1970-01-01
              • 2014-07-24
              • 1970-01-01
              • 1970-01-01
              • 2016-06-26
              • 1970-01-01
              相关资源
              最近更新 更多