Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/rest/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何找到twitter对话的开始?_C#_Twitter_Tweetinvi - Fatal编程技术网

C# 如何找到twitter对话的开始?

C# 如何找到twitter对话的开始?,c#,twitter,tweetinvi,C#,Twitter,Tweetinvi,我正在编写一个简单的程序,定期检查是否有人在推特上发过我的帐户,并发布回复 一旦它回复了,我不希望它再次回复(否则它将永远保持回复),因此每个tweet必须有一条回复(如果对话继续,那么它将继续在最后添加一条tweet) 我希望它是无国籍的 因此,我想抓取所有推特对话,看看他们是否已经收到我的程序的回复。如果没有,请回答 如果你浏览twitter,你可以看到tweet的所有回复都是“对话”。所以我想把所有的对话都挂在墙上,看看每个对话中的最新推文是不是我写的。如果不是,那么我想添加一个回复 我的

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

一旦它回复了,我不希望它再次回复(否则它将永远保持回复),因此每个tweet必须有一条回复(如果对话继续,那么它将继续在最后添加一条tweet)

我希望它是无国籍的

因此,我想抓取所有推特对话,看看他们是否已经收到我的程序的回复。如果没有,请回答

如果你浏览twitter,你可以看到tweet的所有回复都是“对话”。所以我想把所有的对话都挂在墙上,看看每个对话中的最新推文是不是我写的。如果不是,那么我想添加一个回复

我的问题是,我无法获得“对话”,因为我无法找到推特如何正确链接在一起

我打算通过获取所有提到我的tweet来构建一张地图,然后计算出“根”tweet(对话的开始),并阅读每个对话,看看最后的回复是否是我写的

但是,我无法计算出根tweet是什么,因为有时甚至根tweet也会填充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);
        }
    }

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

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