2010-02-02 50 views
0

我想檢索由用戶的朋友發佈/發佈的狀態數據。我寫了下面的代碼,但只獲取用戶自己的狀態更新。有人能幫忙告訴我我的代碼有什麼問題嗎?謝謝!iphone facebook用戶的朋友狀態更新

NSString *fql = [NSString stringWithFormat:@"select uid,message from status where uid in (select uid2 from friend where uid1=%lld) order by time desc ", uid]; 

NSDictionary *params = [NSDictionary dictionaryWithObject:fql forKey:@"query"]; 
[[FBRequest requestWithDelegate:self] call:@"facebook.Status.get" params:params]; 

回答

1

您需要將呼叫更改爲使用「facebook.fql.query」,因爲您正在進行直接查詢。

這是我爲獲得最後的20個朋友的代碼更新:

NSString* fql = [NSString stringWithFormat: 
       @"SELECT uid, pic_square, name, status FROM user WHERE uid IN (SELECT uid2 FROM friend WHERE uid1 = %lld) AND status.time > 0 ORDER BY status.time DESC LIMIT 20", fbSession.uid]; 

NSDictionary* params = [NSDictionary dictionaryWithObject:fql forKey:@"query"]; 
last20FriendsStatusRequest = [FBRequest requestWithDelegate:self]; 
[last20FriendsStatusRequest call:@"facebook.fql.query" params:params]; 

最好的問候,

+0

嗨馬特, 謝謝你的提示。 :-) 順便說一句,你能解釋更多關於「直接查詢」嗎?當我使用fql.query或User.setStatus等時,我總是感到困惑。 謝謝。 – 2010-02-03 00:44:08

+0

「facebook.fql.query」和「facebook.status.get」都是Web服務調用。一個將FQL查詢作爲參數,而另一個則沒有。通過FQL查詢,您可以使用更具體的查詢語言獲得您在狀態調用在幕後執行特定查詢時的確切結果。 – 2010-02-03 01:06:19

+0

很好的回答!謝謝! – 2010-02-03 01:21:22