Facebook(API)FQLを使用してニュースフィードを取得しようとしています。
結果をページングするために、最初は次のようなLIMITパラメーターとOFFSETパラメーターを使用していました。
SELECT post_id,.... FROM stream WHERE filter_key in (SELECT filter_key FROM stream_filter WHERE uid = me() AND type = 'newsfeed') AND is_hidden = 0 LIMIT 20 OFFSET 0
そして、毎回、の終わりにListView
到達し、別のクエリを実行し、OFFSETを+20ずつ増やして、次のフィードのセットをフェッチします。私はこの答えから論理を取りました:https ://stackoverflow.com/a/13265776/450534
ただし、問題は、LIMITパラメーターとOFFSETパラメーターが必ずしもすべての結果を提供するわけではなく、SOで検索すると、Facebookが時間制約の使用を推奨していることが明らかになりました。
次に、フィードが毎日フェッチされるようにコードを変更する必要があります。例えば:
Initial Set Of Data - `created_time < 1355788800` (17th December)
Second Set Of Data - `created_time < 1355702400` (16th December)
Third Set Of Data - `created_time < 1355616000` (15th December)
.
.
.
.
少し検索した後、現在の時刻をUnixTimeStampに変換するソリューションを取得することは次のように達成されました。
Date now = new Date();
long unixTime = new Long(now.getTime()/1000);
しかし、新しいデータセットごとに、を1ずつ減らすにはどうすればよいDate
ですか?私はこのコードを試しました:
Calendar newCal = Calendar.getInstance();
Calendar xDate = (Calendar) newCal.clone();
xDate.set(Calendar.DATE, -1);
System.out.println(xDate.getTime().toString());
しかし、結果は次のとおりです。Thu Nov 29 17:18:50 GMT+05:30 2012
私が望んでいたのは、12月16日になることです。どんな助けでもありがたいです。
ありがとうございました。