我曾使用linqtotwitter从Twitter获取推文。
但是,如果我尝试使用sinceid和maxid将推文拉回空,并且我还在查询中使用范围日期执行,我一次只能从一个推文中获取推文。 与下面的代码我只能够得到只有100 tweets.what我做错了
感谢如何使用linqtotwitter v2.1中的since_id和max_id进行分页处理?
我的代码
var auth = new SingleUserAuthorizer
{
Credentials = new InMemoryCredentials
{
ConsumerKey = "xxxxx",
ConsumerSecret = "xxxxx",
OAuthToken = "xxxxx",
AccessToken = "xxxxxxx"
}
};
var twitterCtx = new TwitterContext(auth);
var ownTweets = new List<Status>();
ulong sinceId = 0;
ulong maxID = 0;
int lastStatusCount = 0;
var dateFrom = DateTime.Now.AddDays(-20);
bool flag = true;
var statusResponse = new List<Status>();
statusResponse = (from tweet in twitterCtx.Status
where tweet.Type == StatusType.User
&& tweet.ScreenName == screenname
&& tweet.Count == 100
&& (tweet.CreatedAt >= dateFrom && tweet.CreatedAt <= DateTime.Now)
select tweet).ToList();
if (statusResponse.Count > 0)
{
maxID = statusResponse.Min(status => ulong.Parse(status.StatusID)) - 1;
ownTweets.AddRange(statusResponse);
sinceId = Convert.ToUInt64(ownTweets.Last().StatusID);
}
do
{
int rateLimitStatus = twitterCtx.RateLimitRemaining;
if (rateLimitStatus != 0)
{
statusResponse = (from tweet in twitterCtx.Status
where tweet.Type == StatusType.User
&& tweet.ScreenName == screenname
&& tweet.SinceID == sinceId && tweet.MaxID == maxID
&& tweet.Count == 100
&& (tweet.CreatedAt >= dateFrom && tweet.CreatedAt <= DateTime.Now)
select tweet).ToList();
lastStatusCount = statusResponse.Count;
if (lastStatusCount != 0)
{
maxID = statusResponse.Min(status => ulong.Parse(status.StatusID)) - 1;
ownTweets.AddRange(statusResponse);
}
else
{
flag = false;
}
}
else
{
flag = false;
}
}
while (flag);
可能的重复[如何使用LinqToTwitter获取所有关于Hashtag的推文](http://stackoverflow.com/questions/34943598/how-to-get-all-tweets-on-hashtag-using-linqtotwitter) – 2016-10-24 08:12:33