-1

Android の Facebook からイベント情報を取得するために FQL を使用します。

今日の 1 週間前と今日の 1 週間後のイベントを取得する必要があります。

次のコードを試してみましたがDATEADD、FQL には存在しない関数のようです:

final Bundle params = new Bundle();
params.putString("method", "fql.query");
params.putString("query",
    "SELECT eid, update_time, start_time, end_time, creator, description, name, location " + 
    "FROM event " + 
    "WHERE eid IN (SELECT eid FROM event_member WHERE uid = me() AND rsvp_status != 'declined') " + 
    "AND start_time<DATEADD(day,7,now()) AND start_time>DATEADD(day,-7,now())");
final String response = "{\"data\":" + _facebook.request(params) + "}";
final JSONObject json = Util.parseJson(response);
final JSONArray data = json.getJSONArray("data");

の代わりに何を使用できDATEADDますか?

私が見つけた別の問題は、彼らがFacebook APIstart_timeフィールドが文字列であると言っていることです。これはそれ自体が奇妙です...

4

2 に答える 2

1

わかりました、私は解決策を見つけました:

final Bundle params = new Bundle();
final SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.DAY_OF_MONTH, 7);
calendar = Calendar.getInstance();
final String startTime = sdf.format(calendar.getTime());
calendar.add(Calendar.DAY_OF_MONTH, -7);
final String endTime = sdf.format(calendar.getTime());
params.putString("method", "fql.query");
params.putString("query",
    "SELECT eid, update_time, start_time, end_time, creator, description, name, location " + 
    "FROM event " + 
    "WHERE eid IN (SELECT eid FROM event_member WHERE uid = me() AND rsvp_status != 'declined') " );
        + "AND start_time<'" + startTime + "' AND start_time>'" + endTime + "'");
于 2012-08-15T14:10:16.690 に答える
0

しかし、DATEADDはFQLには存在しない関数のようです

いいえ、そうではありません。したがって、アプリで適切な日付値を自分で計算し、それをクエリに入れます。

私が見つけたもう1つの問題は、Facebook APIで、start_timeフィールドが文字列であると言っていることです。これはそれ自体が奇妙です...

それについて「奇妙な」ことは何ですか?ISO-8601の日付は数値として表現できません。このための特別な「日付」データ型を使用しても、FQLを使用している間はメリットがありません。

于 2012-08-13T13:55:30.247 に答える