如何从多个朋友那里获得推文?

时间:2012-06-21 10:02:56

标签: twitter linq-to-twitter

这是我在SO女巫中的第一个问题,我使用了很多btw :)。这是问题/挑战:

我正在构建一项服务,用户可以选择他的一些Facebook和Twitter朋友,然后他会获得推文和状态的组合列表。 Facebook使用批处理请求没有问题非常有用且易于实现。我试图从推特获得相同的结果,但这看起来似乎更难。

我有一个我所有朋友的名单(name和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这样的公共用户,但不适用于私人朋友,是的,我有有效的令牌。

2 个答案:

答案 0 :(得分:3)

以下是用户在LINQ to 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

答案 1 :(得分:1)

这是您需要的API调用 - users/lookup

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

这将返回所有这些screen_names的最新推文。如果您愿意,也可以使用user_ids。