【问题标题】:How to get Twitter statuses with replies using TweetSharp如何使用 TweetSharp 通过回复获取 Twitter 状态
【发布时间】:2018-03-13 10:44:39
【问题描述】:

我正在尝试让我发布的所有推文回复(如果有的话)。 我正在使用 TweetSharp,我可以获取自己的推文,但不知道如何在同一个请求/响应中获取回复。

此外,我可以自己获取所有回复/提及,但在单独的请求中,这将很难将每个回复与其原始状态相关联。

我尝试使用“排除回复”属性,但对响应没有任何影响:

TimelineTweetsOptions.ExcludeReplies = true; 

有什么想法可以实现吗?即使使用其他库,例如 LinqToTwitter 或其他任何东西?

我正在使用 ASP.NET C# 和 TweetSharp v4.0.2 进行编码

更新 #1: ExcludeReplies 属性有效,但仅适用于我自己对其他用户的回复。我仍然无法获得所有用户回复的状态。

更新#2:我知道我必须使用一些递归方法来实现这一点,有什么帮助吗?

【问题讨论】:

  • Twitter API 本身并不容易做到这一点。如果您对 twitter api 和对话进行网络搜索,您会看到人们用来尝试重建对话的一些技巧(通常是回复和回复回复)。 IIRC 需要第二次调用。每条推文都应该有一个 InReplyToId ,即使您有两个结果集(linq 在这里有帮助),它也应该可以轻松地将回复与原件相关联。
  • 基本上,您应该查看 Twitter API 以确定您想如何做某事,然后使用等效的 TweetSharp 方法。如果您无法从 API 中弄清楚,则缺陷不是 TweetSharp 特有的。
  • @Yort :我知道这并不容易,而且 Twitter API 没有提供,即使我将推文和回复存储在数据库的两个不同表中,我仍然需要帮助安排每条推文的回复作为对话,我想不出这样做的正确逻辑!
  • @Yort 还有InReplyToStatusId,但正如你所说,它的回复和回复的回复,所以我如何才能跟踪原始状态?

标签: c# asp.net recursion twitter recursive-query


【解决方案1】:

我找到了自己问题的答案,正如@Yort 所说,通过一个电话来解决问题并不容易。

所以我的解决方案是使用InReplyToStatusId 字段并跟踪它,直到我达到根状态(因为我将所有状态都存储在我的数据库中)。

当然,通过InReplyToStatusId == 0,我认为状态是根,或者如果它是转推,那么我在数据库中找不到原始推文,那么它就是我的根状态并停止。

将每个状态存储在 List 中,然后按日期 desc 或 asc 排序。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-09
    • 1970-01-01
    • 2011-02-21
    • 2011-01-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多