2012-06-21 2 views
1

Это мой первый вопрос в SO witch, который я использую alot btw :). это проблема/вызов:Как получить твиты от нескольких друзей?

Я строю службу, в которой пользователь может выбрать несколько своих друзей и друзей в твиттере, затем он получит объединенный список твитов и статусов этих. Facebook не был проблемой при использовании пакетного запроса, был очень полезен и прост в реализации. Я пытаюсь получить тот же результат из твиттера, но это кажется сложнее, чем кажется.

У меня есть список всех моих друзей (имя и user_id), я хочу выбрать некоторых из этих друзей и получить их твиты. Я использую linqToTwitter, прямой HTTP-запрос также приветствуется :).

это то, что им пытаются:

var tweetsResult = 
       (from search in twitterCtx.Search 
        where search.Type == SearchType.Search && 
        search.Query == "from:cinek24 OR from:blaba" 
        select search).Single(); 

это работает с общественными пользователями, как CNN, но не частных друзей, да и у меня есть действительные лексемы.

ответ

3

Вот как бы пользователи просмотровых в LINQ к Twitter:

 var users = 
      (from user in twitterCtx.User 
      where user.Type == UserType.Lookup && 
        user.ScreenName == "cinek24,blaba" 
      select user) 
      .ToList(); 

     users.ForEach(user => Console.WriteLine("Name: " + user.Name)); 

Больше информации здесь:

http://linqtotwitter.codeplex.com/wikipage?title=Querying%20User%20Details&referringTitle=Getting%20User%20Information

Если у вас есть пользователи, то вы будете иметь чтобы запросить каждый из них для своих твитов, потому что пользовательский поиск вернет только последний твит, например:

 var statusTweets = 
      from tweet in twitterCtx.Status 
      where tweet.Type == StatusType.User 
        && tweet.ScreenName == "cinek24" 
        && tweet.Count == 40 
      select tweet; 

     tweets.ToList().ForEach(
      tweet => Console.WriteLine(
       "Name: {0}, Tweet: {1}\n", 
       tweet.User.Name, tweet.Text)); 

Более подробная информация по этому запросу здесь:

http://linqtotwitter.codeplex.com/wikipage?title=Querying%20the%20User%20Timeline&referringTitle=Making%20Status%20Queries%20and%20Calls

Джо

+0

Thanx для ответа, я думаю, что это невозможно сделать в одном запросе, например, в facebook. Давайте перейдем в Twitter, это обеспечит это в будущем. – MQoder

+0

Я уже реализовал метод witch, который возвращает N количество твитов пользователя, теперь я прохожу через этот метод, используя разные userIds. это занимает около 800 мс за запрос, ведь ведь много времени. Я принял ваш ответ как принятый, потому что я думаю, что нет способа сделать это в одном запросе. – MQoder

+0

MQoder, это звучит как запрос Статус пользователя: вар statusTweets = из твита в twitterCtx.Status где tweet.Type == StatusType.User && tweet.ScreenName == "JoeMayo" && tweet.Count == 200 выбрать твит; –

1

Это API позвонить вам нужно - users/lookup

https://api.twitter.com/1/users/lookup.json?screen_name=twitterapi,twitter,edent,MQoder&include_entities=true 

Это вернет самый последний твит от всех этих screen_names. Вы также можете использовать user_id, если хотите.

+0

Thanx для быстрой реакции, это отличный способ, если вы заинтересованы в последнем чириканье, мне нужно, чтобы получить от 20 до 40 твитов. – MQoder

+0

Единственный способ, которым я это знаю, - положить их в список. –

Смежные вопросы