2012-08-13 78 views
-1

我使用FQL從android上的Facebook獲取事件信息。在特定時間範圍內查詢事件的FQL事件表

我需要採取的事件是今天之前的一週和今天之後的一週。

我已經嘗試了下面的代碼,但似乎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領域是一個字符串,它是由本身怪異......

回答

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 + "'"); 
0

但似乎DATEADD是沒有按」功能t存在於FQL上

不,它沒有。因此,請在您的應用中自己計算適當的日期值,並將其放入查詢中。

另一個問題,我發現的是,他們說對Facebook的API,該START_TIME字段是一個字符串,它本身是奇怪...

什麼是「怪異」的看法? ISO-8601日期不能表示爲數值,並且爲此使用特殊的「日期」數據類型在使用FQL時不會帶來好處。

+0

什麼應該是正確的查詢? – 2012-08-14 07:35:57

+0

_「因此,在您的應用程序中自己計算適當的日期值,並將其放入查詢中。」_ – CBroe 2012-08-14 08:14:10

+0

是的,但是如何?我知道如何創建與日期相關的類並獲取當前日期前後的當前日期和日期。這些數據在FQL查詢中應該改變什麼?不管我嘗試過什麼,沒有一個類做了一個正在工作的查詢(所有都發生了錯誤)。問題是關於FQL查詢。我不需要臉書給我所有的事件,只有那些有趣的應用程序。我知道我可以取得所有,然後檢查時間,但這不是我需要做的。 – 2012-08-14 09:00:59