因此,我正在尝试使用tweet sharp来构建一个针对twitter关键词的实时监控工具。我使用搜索API每10-15秒收集一次查询。当我打电话时,我只想收集自上一次更新以来出现的tweet。
var twitter = FluentTwitter.CreateRequest().AuthenticateAs("username", "password").Search().Query().Containing("key word").Take(1000);
var response = twitter.Request();
currentResponseDateTime= Convert.ToDateTime(response.ResponseDate);
var messages = from m in response.AsSearchResult().Statuses
where m.CreatedDate > lastUpdateDateTime
select m;
lastUpdateDateTime = currentResponseDateTime;我的问题是twitter服务器时间与客户端时间相差几秒。我环顾四周,尝试获取从Response.ResponseDate属性收到响应的日期时间,但它看起来是基于本地计算机时间设置的。也就是说,currentResponseDateTime比推特服务器的时间提前了几秒钟。所以我最终没有收集一些推文。
有人知道如何从twitter搜索或REST API获取当前服务器时间吗?
谢谢
发布于 2010-02-06 03:51:24
我不确定如何获取twitter服务的本地服务器时间,但您可以采取的一种方法是在"lastUpdateDateTime“字段中存储看到的最近twitter更新的日期。这样,无论twitter服务器的偏移量是多少,您都可以获得自上次看到以来的所有消息。
var twitter = FluentTwitter.CreateRequest().AuthenticateAs("username", "password").Search().Query().Containing("key word").Take(1000);
var response = twitter.Request();
currentResponseDateTime= Convert.ToDateTime(response.ResponseDate);
var messages = from m in response.AsSearchResult().Statuses
where m.CreatedDate > lastUpdateDateTime
select m;
lastUpdateDateTime = messages.Select(m => m.CreatedDate).Max();发布于 2013-01-22 21:32:34
另一种方法(也是推特推荐的方法)是从他们的应用程序接口服务器的响应中提取Date头,这提供了推特在格林威治时间中的时间概念。这里假设您可以访问服务器响应头,这取决于您用来访问API的方法。
例如,点击https://api.twitter.com/1/help/test.json
$ lynx --dump --head https://api.twitter.com/1/help/test.json
HTTP/1.0 200 OK
Date: Tue, 22 Jan 2013 13:30:36 GMT
...参考: dev.twitter.com支持站点上的how to get the twitter server time (synchronize)?。
Twitter“认为”的当前时间会在你调用
的每个响应的"Date“HTTP头中返回。您还可以发出一个简单的HTTP HEAD请求来获取帮助/测试,以获取标题作为应用程序的初始同步步骤。
https://stackoverflow.com/questions/2209940
复制相似问题