0

そこで、ツイートシャープを使ってツイッターキーワードのリアルタイム監視ツールを構築しようとしています。検索APIを使用して、10〜15秒ごとにクエリを収集しています。電話をかけるときは、前回の更新以降に表示されたツイートのみを収集したいと思います。

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サーバーの時間より数秒進んでいます。だから私はツイートのいくつかを収集しないことになります。

Twitter検索またはRESTAPIから現在のサーバー時間を取得する方法を知っている人はいますか?

ありがとう

4

2 に答える 2

4

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();
于 2010-02-05T19:51:24.167 に答える
0

別のアプローチ (および Twitter が推奨するアプローチ) はDate、API サーバーの応答からヘッダーを取得することです。これにより、Twitter の時間の概念が GMT で提供されます。これは、サーバーの応答ヘッダーにアクセスできることを前提としています。これは、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
...

参考:Twitterサーバーの時刻を取得(同期)するには?dev.twitter.com サポート サイト。

Taylor Singletary の引用:

Twitter が「考える」現在の時刻は、API 呼び出しに対するすべての応答の「Date」HTTP ヘッダーで返されます。アプリの最初の同期手順として、単純な HTTP HEAD リクエストを GET help/test に発行してヘッダーを取得することもできます。

于 2013-01-22T13:32:33.603 に答える