У меня есть приложение на С#, которое успешно передает все твиты, созданные любым из моих друзей (с использованием библиотеки Tweetinvi и следующего кода).
var userStream = Tweetinvi.Stream.CreateUserStream();
userStream.TweetCreatedByFriend += (sender, args) =>
{
ConsoleLog(args.Tweet.Text);
}
Как (если возможно) я могу слушать твиты, в которых упоминается какое-либо имя экрана моего друга? например, я друг @alice. Теперь @bob, который НЕ мой друг, твиты вроде этого:
Hi @alice, how are you ?
Как я могу слушать выше твита @bob, кто НЕ мой друг, и МОЖЕТ или НЕ МОЖЕТ быть другом или последователем @alice?
Я знаю, что это очень старый вопрос, но попробуйте использовать UserStream и отфильтровать UserMentions. Я сейчас пытаюсь найти лучший способ сделать это сам. Каждый раз, когда пользователь упоминает вас, они добавляются в ваш UserStream.
var stream = Tweetinvi.Stream.CreateTweetStream();
stream.TweetReceived += (sender, args) =>
{
if(args.Tweet.IsRetweet || !args.Tweet.UserMentions.Any((x)=> x.Id == user.Id))
{
return;
}
//Code to respond to mention here
}
Вы не можете сделать это. Или, по крайней мере, я не думаю, что вы можете, если у вас слишком много друзей. Единственное решение, которое вы сейчас видите в настоящее время, это использовать фильтр FilteredStream, поскольку он является общедоступным потоком, и вы можете получать доступ к твитам от пользователей, которых вы не соблюдаете.
Если список ваших последователей достаточно низкий, вы можете сделать следующее
var fs = Stream.CreateFilteredStream();
fs.AddTrack("@userScreenName");
В результате вы сможете следить за всеми твитами, содержащими @userScreenName, у любого пользователя Twitter.