C# 林克把推特的成绩限制在一周之内,如何超越呢?
下面的代码用于获取标签中的所有tweet。如果你尝试了不同的标签,你会有不同的结果,因为上周推特的数量。该问题与15分钟的极限速率时间无关。我已经试着推迟这个功能。在我得到这个标签中的第一条tweet之前,我怎么能超过第一周对所有tweet的限制C# 林克把推特的成绩限制在一周之内,如何超越呢?,c#,twitter,linq-to-twitter,C#,Twitter,Linq To Twitter,下面的代码用于获取标签中的所有tweet。如果你尝试了不同的标签,你会有不同的结果,因为上周推特的数量。该问题与15分钟的极限速率时间无关。我已经试着推迟这个功能。在我得到这个标签中的第一条tweet之前,我怎么能超过第一周对所有tweet的限制 private List<Status> statusList= new List<Status>(); private ulong sinceID=1; private ulong maxID
private List<Status> statusList= new List<Status>();
private ulong sinceID=1;
private ulong maxID;
public void GetMostRecent200HomeTimeLine()
{
var twitterContext = new TwitterContext(authorizer);
var tweets = from tweet in twitterContext.Status
where tweet.Type == StatusType.Home && tweet.Count == 200
select tweet;
currentTweets = tweets.ToList();
}
public bool TAsyncSearchTag(string tag)
{
var twitterContext = new TwitterContext(authorizer);
Search searchResponse;
try
{
do
{
searchResponse =
(from search in twitterContext.Search
where search.Type == SearchType.Search &&
search.ResultType == ResultType.Mixed &&
search.Query == tag &&
search.Count == 100 &&
search.SinceID == sinceID &&
search.MaxID == maxID
select search)
.FirstOrDefault();
if (searchResponse != null && searchResponse.Statuses.Count > 0)
{
var tweets = from tweet in searchResponse.Statuses
select tweet;
statusList.AddRange(tweets);
maxID = searchResponse.Statuses.Min(x => x.StatusID) - 1;
}
} while (searchResponse.Statuses.Count != 0);
return true;
}
catch (Exception e)
{
MessageBox.Show(e.Message);
return false;
}
}
public List<Status> GetAllTweets(string tag)
{
var twitterContext = new TwitterContext(authorizer);
var searchResponse =
(from search in twitterContext.Search
where search.Type == SearchType.Search &&
search.ResultType == ResultType.Mixed &&
search.Query == tag &&
search.SinceID == sinceID &&
search.Count == 100
select search)
.FirstOrDefault();
var tweets = from tweet
in searchResponse.Statuses
select tweet;
statusList.AddRange(tweets);
maxID = searchResponse.Statuses.Min(x => x.StatusID) - 1;
bool tester = TAsyncSearchTag(tag);
MessageBox.Show("done " + statusList.Count.ToString() + " - " + statusList.Last().StatusID.ToString());
if (statusList != null)
return statusList;
return null;
}
private List statusList=new List();
私人乌龙sinceID=1;
私用乌龙maxID;
public void GetMostRecent200HomeTimeLine()
{
var twitterContext=新twitterContext(授权人);
var tweets=来自twitterContext.Status中的tweet
其中tweet.Type==StatusType.Home&&tweet.Count==200
选择tweet;
currentTweets=tweets.ToList();
}
公共布尔TAsyncSearchTag(字符串标记)
{
var twitterContext=新twitterContext(授权人);
搜索响应;
尝试
{
做
{
搜索响应=
(来自twitterContext中的搜索。搜索
其中search.Type==SearchType.search&&
search.ResultType==ResultType.Mixed&&
search.Query==标记&&
search.Count==100&&
search.SinceID==SinceID&&
search.MaxID==MaxID
选择(搜索)
.FirstOrDefault();
if(searchResponse!=null&&searchResponse.Statuses.Count>0)
{
var tweets=来自searchResponse.status中的tweet
选择tweet;
statusList.AddRange(tweets);
maxID=searchResponse.Statuses.Min(x=>x.StatusID)-1;
}
}while(searchResponse.Statuses.Count!=0);
返回true;
}
捕获(例外e)
{
MessageBox.Show(e.Message);
返回false;
}
}
公共列表GetAllTweets(字符串标记)
{
var twitterContext=新twitterContext(授权人);
var搜索响应=
(来自twitterContext中的搜索。搜索
其中search.Type==SearchType.search&&
search.ResultType==ResultType.Mixed&&
search.Query==标记&&
search.SinceID==SinceID&&
search.Count==100
选择(搜索)
.FirstOrDefault();
var tweets=来自tweet
在searchResponse.status中
选择tweet;
statusList.AddRange(tweets);
maxID=searchResponse.Statuses.Min(x=>x.StatusID)-1;
布尔测试仪=TAsyncSearchTag(标签);
MessageBox.Show(“完成”+statusList.Count.ToString()+“-”+statusList.Last().StatusID.ToString());
如果(状态列表!=null)
返回状态列表;
返回null;
}
我在试图确定真正的问题是什么时遇到了一些问题,但我假设您想要得到第一个结果,并且遇到了一些问题。对LINQ的理解是
LINQ使用延迟执行来迭代集合。它在开始迭代时获取结果集。然后应用过滤器。LINQtoSQL是一个轻微的例外,因为它内置了一个查询解析器。在LINQtoSQL中,它实际上编写查询,因此在调用中会对集合进行过滤。但是,在LINQ中{在这里选择您最喜欢的服务}您将在获得第一个结果之前获得所有结果
换句话说,您的问题可能与限制有关。尽管在LINQ中过滤到少量结果或单个结果,但仍会请求所有结果,然后LINQ会过滤整个结果集
我将从LINQ过滤器中分离数据的获取,您会发现工作得更好我正在尝试将所有推文都放在某个标签中。我同意你的看法,Linq只是将我的请求过滤到上周的推文中。我想知道我怎么能得到比本周更多的信息——实际上这个标签中的所有tweet。问题是你正在生成一个可能有数百万条tweet的列表,尽管你的应用程序的用户不可能消费它们。你最好先过滤结果集,然后再组织它,这可以通过LINQ.Update完成,也可以不通过LINQ.Update完成。我发现twitter将他们的搜索限制为最多1周,以获取更多信息。用户或相关推文必须使用其他方法。