Я пишу простую программу, которая будет периодически проверять, есть ли кто-то в Twitter, и опубликовать ответ.Как найти начало твиттер-беседы?
После того, как он ответил, я не хочу, чтобы он снова отвечал (в противном случае он будет отвечать навсегда), поэтому он должен быть одним ответом за твит (если разговор продолжается, то он будет продолжать добавлять твиттер до конца).
Я хочу, чтобы он был без гражданства.
Поэтому я хочу захватить все твит-разговоры и посмотреть, есть ли у них ответ моей программой. Если нет, ответьте.
Если вы просматриваете twitter, вы можете увидеть все ответы на твит в качестве «беседы». Поэтому я хочу, чтобы все разговоры на моей стене и посмотреть, был ли последний твит в каждом разговоре сделан мной. Если это не так, я хочу добавить ответ.
Проблема заключается в том, что я не могу получить «разговоры», потому что я не могу найти, как твиты связаны друг с другом должным образом.
Я собирался построить карту, получив все твиты, которые упоминают меня, а затем выработайте «корневые» твиты (начало разговора) и прочитайте каждый разговор, чтобы узнать, был ли последний ответ мной.
Однако я не могу понять, что такое корневой твит, потому что иногда свойство 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);
}
}