如何找到Twitter对话的开始?

时间:2015-11-11 12:41:43

标签: c# twitter tweetinvi

我正在编写一个简单的程序,会定期检查是否有人发布了我的帐户,并发布了回复。

一旦回复,我就不希望它再次回复(否则会一直回复)所以每条推文必须回复一次(如果对话继续,那么它会不断添加推文给端)。

我希望它是无国籍的。

因此,我想抓住所有推文对话,看看他们是否已经通过我的程序回复。如果没有,请回复。

如果您浏览Twitter,您可以将推文的所有回复都视为对话'。所以我想在我的墙上进行所有对话,看看每个对话中的最新推文是否由我完成。如果不是,那么我想添加回复。

我遇到的问题是我无法进行对话'因为我无法找到推文如何正确链接在一起。

我打算通过让所有推文提到我来制作一张地图,然后找出' root'推文(会话开始)并阅读每个会话以查看最后的回复是否由我发送。

但是,我无法弄清楚根推文是什么,因为有时即使是根推文也会填充InReplyToUserId属性。所以我无法弄清楚哪些是根推文。

有什么想法吗?到目前为止,这是我的代码:

var allMentions = Timeline.GetMentionsTimeline();

    // Get all root tweets
    foreach (var tweet in allMentions.Where(c => !c.InReplyToUserId.HasValue))
    {
        var replies = Search.SearchDirectRepliesTo(tweet);

        var latestTweet = replies.OrderByDescending(c => c.TweetLocalCreationDate).FirstOrDefault();

        if (latestTweet.CreatedBy.Id != _myTwitterId)
        {
            string reply = GetReply();

            foreach (var mention in latestTweet.UserMentions)
            {
                if (mention.Id != _myTwitterId)
                {
                    reply = $"@{mention.ScreenName} {reply}";
                }
            }

            if (reply.Length > 140)
            {
                reply.Substring(0, 140);
            }

            Tweet.PublishTweetInReplyTo(reply, latestTweet);
        }
    }

1 个答案:

答案 0 :(得分:0)

使用in_reply_to_status_id字段。这将让您找到对话的根推文。