Как получить доступ к разговору по истории твитов с помощью TweetSharp?
Я пытаюсь получить доступ к истории разговоров в Твиттере, используя TweetSharp.
Требование таково: если я использую идентификатор одного элемента твита, он должен вернуть мне весь поток, который следовал до этого элемента твита.
Но не смог найти такой метод, выставленный через TwittertService, где я могу передать текущий Tweet _id и получить детали беседы.
Я использовал следующий подход, чтобы получить коллекцию (список), т.е.
List<TwitterStatus> list = new List<TwitterStatus>();
private void GetReplied(TwitterStatus twitter, TwitterResponse twitterResponse)
{
if (twitter.InReplyToStatusId != null)
{
long statusID = (long)twitter.InReplyToStatusId;
this.ts.GetTweet(statusID, (twitterRecursive,
twitterResponseRecursive) =>
{
list.Add(twitterRecursive);
if (twitter.InReplyToStatusId != null)
{
this.GetReplied(twitterRecursive,
twitterResponseRecursive);
}
});
}
else
{
Debug.WriteLine(list.Count);
foreach (TwitterStatus status in list)
{
Debug.WriteLine(status.Text);
}
}
}
this.ts.GetTweet(<tweet Id>, twitterResponse) =>
{
list.Add(twitter);
this.GetReplied(twitter, twitterResponse);
});
Просто хотел получить твой совет по этому поводу. Есть ли у нас такой метод с TweetSharp или альтернативный подход может быть реализован?
Очень ценю вашу помощь.
1 ответ
Да, вот как вы должны это сделать: начать с твита и пройти его in_reply_to_status_id
цепь.
Единственное, что я делаю, хотя это может быть неприменимо к вам, - это проверяю локальный кеш твитов перед загрузкой из Твиттера, чтобы узнать, получал ли я уже полученный ответ.
Что касается библиотек, которые делают это проще, я не знаю ни одной. Независимо от того, предоставляют ли они более оптимизированный метод, под прикрытием им все равно придется выполнять процесс, который вы реализовали в своем коде.
Чтобы увидеть, как другая библиотека подошла к этой задаче, взгляните на этот пример Twitterizer.