2013-07-31 138 views
0

當我嘗試加載我所有的Facebook好友時,我收到了一個時間請求超時錯誤。Facebook SDK好友列表請求

我有FBSessionOpen狀態。 我的代碼:

[FBRequestConnection startForMyFriendsWithCompletionHandler:^(FBRequestConnection *connection, id data, NSError *error) { 
    if(error) { 
     NSLog(@"Error: %@", error); 
     [self.delegate didFinishLoadingFriendsWithResult:[ErrorResponse errorResponseWithMessage:@"Failed to load user friends from Facebook"] succes:NO]; 
     return; 
    } 
    NSArray* friends = (NSArray*)[data data]; 
    NSLog(@"You have %d friends", [friends count]); 
    NSLog(@"Friends: %@", friends); 
    [self.delegate didFinishLoadingFriendsWithResult:friends succes:YES]; 
}]; 

錯誤消息:

Error: Error Domain=com.facebook.sdk Code=5 "The operation couldn’t be completed. (com.facebook.sdk error 5.)" UserInfo=0x1d1e3a30 {com.facebook.sdk:ErrorInnerErrorKey=Error Domain=NSURLErrorDomain Code=-1001 "The request timed out." UserInfo=0x1d1e16a0 {NSErrorFailingURLStringKey=https://graph.facebook.com/me/friends?sdk=ios&fields=id%2Cname%2Cusername%2Cfirst_name%2Clast_name&migration_bundle=fbsdk%3A20130120&format=json&access_token=CAAHyDtIdIi0BAM6ZCtXb3Yb5jzuPQ7Tvc6mYg1zO1ZBjoEqZBI5sB5eFYQiTp6s0euVhMTQcl1yqXnaLT118BIBaaEtY1hLEpKq1ptG6y4dHR8BknAOTZCpRUvYlJlT6KbL42MXk2VaMZBvGRwIvs1644FSxy5vVRBSTIFsNZAzIyRpQjjhIA1, NSErrorFailingURLKey=https://graph.facebook.com/me/friends?sdk=ios&fields=id%2Cname%2Cusername%2Cfirst_name%2Clast_name&migration_bundle=fbsdk%3A20130120&format=json&access_token=CAAHyDtIdIi0BAM6ZCtXb3Yb5jzuPQ7Tvc6mYg1zO1ZBjoEqZBI5sB5eFYQiTp6s0euVhMTQcl1yqXnaLT118BIBaaEtY1hLEpKq1ptG6y4dHR8BknAOTZCpRUvYlJlT6KbL42MXk2VaMZBvGRwIvs1644FSxy5vVRBSTIFsNZAzIyRpQjjhIA1, NSLocalizedDescription=The request timed out., NSUnderlyingError=0x1d1e3800 "The request timed out."}, com.facebook.sdk:HTTPStatusCode=200, com.facebook.sdk:ErrorSessionKey=<FBSession: 0x1d1b0c90, state: FBSessionStateOpen, loginHandler: 0x1d1b0db0, appID: 547620445299245, urlSchemeSuffix: , tokenCachingStrategy:<FBSessionTokenCachingStrategy: 0x1d1afdd0>, expirationDate: 2013-09-28 09:49:39 +0000, refreshDate: 2013-07-30 14:08:31 +0000, attemptedRefreshDate: 0001-12-30 00:00:00 +0000, permissions:(
    "read_friendlists" 
)>} 

任何想法,我做錯了什麼?

+0

其Facebook的SDK在這個用的? ios sdk 3.1或其他? – DharaParekh

+0

3.2.1也許我應該更新,好主意 – flatronka

+0

3.6版本表現相同 – flatronka

回答

1

看起來你只是沒有要求從Facebook所需要的權限。只需使用

[FBSession openActiveSessionWithReadPermissions:[NSArray arrayWithObjects:@"read_friendlists", @"user_status", @"friends_status", nil] allowLoginUI:allowLoginUI completionHandler:^(FBSession *session, FBSessionState status, NSError *error) { 

    [self sessionStateChanged:session state:status error:error]; 


}]; 

然後

FBRequest* friendsRequest = [FBRequest requestForMyFriends]; 
friendsRequest.session = FBSession.activeSession; 

[friendsRequest startWithCompletionHandler: ^(FBRequestConnection *connection, 
     NSDictionary* result, 
     NSError *error) { 
    NSArray* friends = [result objectForKey:@"data"]; 
    NSLog(@"Found: %i friends", friends.count); 
    NSLog(@"friends: %@", result); 
    for (NSDictionary<FBGraphUser>* friend in friends) { 
     NSLog(@"I have a friend named %@ with id %@", friend.name, friend.id); 
    } 
}]; 
+1

它應該是工作,但我得到了一個空列表:「朋友:{ 數據=( ) ; }「 – flatronka

+0

檢查你在Facebook的應用程序設置,檢查應用程序的權限。 – nerowolfe

+0

如果我得到空結果意味着什麼? – btmanikandan