检索特定主题标签的所有推文
Retrieve all the tweets of a specific hashtag
我正在使用 linq2twitter 库检索特定主题标签的推文,我能够做到这一点,但问题是它只提供 100 条推文。
string consumerKey = "MyConsumerKey";
string consumerSecret = "MyConsumerSecret";
string accessToken = "MyAcessToken";
string accessTokenSecret = "MyAccessToken";
string Query = "#HashTag";
var auth = new SingleUserAuthorizer
{
CredentialStore = new InMemoryCredentialStore
{
ConsumerKey = consumerKey,
ConsumerSecret = consumerSecret,
OAuthToken = accessToken,
OAuthTokenSecret = accessTokenSecret
}
};
var context = new TwitterContext(auth);
int count = 0;
var searchResults =
(from search in context.Search
where search.Type == SearchType.Search &&
search.Query == Query &&
search.IncludeEntities == true
select search).SingleOrDefault();
foreach (var item in searchResults.Statuses)
{
count++;
}
Console.WriteLine(count);
有什么办法可以实现所有推文吗?还是我做错了什么?
查看 Linq2Twitter 包装的 Twitter API:
Count
The number of tweets to return per page, up to a maximum of 100. Defaults to 15. This was formerly the “rpp” parameter in the old Search API.
意味着每次调用搜索 API 最多可以 return 100 个结果。如果你想 return 更多,你将不得不手动分页你的请求,可能使用 MaxID
参数(在推特 API 中称为 max_id
):
max_id
Returns results with an ID less than (that is, older than) or equal to the specified ID
所以拿你有100个结果的数据集,抓取最小的ID,并将它作为下一次调用的MaxId
传递。
我正在使用 linq2twitter 库检索特定主题标签的推文,我能够做到这一点,但问题是它只提供 100 条推文。
string consumerKey = "MyConsumerKey";
string consumerSecret = "MyConsumerSecret";
string accessToken = "MyAcessToken";
string accessTokenSecret = "MyAccessToken";
string Query = "#HashTag";
var auth = new SingleUserAuthorizer
{
CredentialStore = new InMemoryCredentialStore
{
ConsumerKey = consumerKey,
ConsumerSecret = consumerSecret,
OAuthToken = accessToken,
OAuthTokenSecret = accessTokenSecret
}
};
var context = new TwitterContext(auth);
int count = 0;
var searchResults =
(from search in context.Search
where search.Type == SearchType.Search &&
search.Query == Query &&
search.IncludeEntities == true
select search).SingleOrDefault();
foreach (var item in searchResults.Statuses)
{
count++;
}
Console.WriteLine(count);
有什么办法可以实现所有推文吗?还是我做错了什么?
查看 Linq2Twitter 包装的 Twitter API:
Count
The number of tweets to return per page, up to a maximum of 100. Defaults to 15. This was formerly the “rpp” parameter in the old Search API.
意味着每次调用搜索 API 最多可以 return 100 个结果。如果你想 return 更多,你将不得不手动分页你的请求,可能使用 MaxID
参数(在推特 API 中称为 max_id
):
max_id
Returns results with an ID less than (that is, older than) or equal to the specified ID
所以拿你有100个结果的数据集,抓取最小的ID,并将它作为下一次调用的MaxId
传递。