2014-02-21 70 views
2

這裏提到我有類似的問題:https://www.parse.com/questions/error-when-trying-to-reauthorise-facebook-userPFFacebookUtil超時錯誤

當我的應用程序啓動時,如果用戶已經登錄它試圖從Facebook獲取用戶的個人資料圖片:

- (void)getFacebookIdAndProfileImageWithSuccess:(void(^)(NSDictionary *))success { 
    // Send request to Facebook to retrieve profile information 
    FBRequest *request = [FBRequest requestForMe]; 
    [request startWithCompletionHandler:^(FBRequestConnection *connection, id result, NSError *error) { 
     if (error) 
      return; 

     // Result is a dictionary of user information 
     NSMutableDictionary *userData = (NSMutableDictionary *)result; 

     NSString *facebookId = userData[@"id"]; 
     [userData setObject:facebookId forKey:@"facebookId"]; 

     // Retrieve the user profile image 
     NSURL *imageUrl = [NSURL URLWithString:[NSString stringWithFormat:@"%@/%@/picture?height=55&width=55", BaseApiUrl, facebookId]]; 
     UIImage *image = [UIImage imageWithData:[NSData dataWithContentsOfURL:imageUrl]]; 
     [userData setObject:image forKey:@"image"]; 
     [userData setObject:[imageUrl absoluteString] forKey:@"imageUrl"]; 

     success([NSDictionary dictionaryWithDictionary:userData]); 
    }]; 
} 

那麼它需要很長的時間請求返回,當它做它報告錯誤:

"Error Domain=com.facebook.sdk Code=5 "The operation couldn’t be completed. (com.facebook.sdk error 5.)" UserInfo=0x146aa790 {com.facebook.sdk:ErrorInnerErrorKey=Error Domain=NSURLErrorDomain Code=-1001 "The request timed out." UserInfo=0x146a1710 {NSErrorFailingURLStringKey=https://graph.facebook.com/, 
NSErrorFailingURLKey=https://graph.facebook.com/, NSLocalizedDescription=The request timed out., NSUnderlyingError=0x1455c110 "The request timed out."}, com.facebook.sdk:HTTPStatusCode=200, com.facebook.sdk:ErrorSessionKey=<PFReceptionist: 0x14685310>}" 
+0

我試圖在瀏覽器中打開https://graph.facebook.com/,但它沒有。這可能是問題嗎? Facebook API崩潰了? – septerr

回答

0

試試這個:

[FBSession openActiveSessionWithReadPermissions:@[@"basic_info",@"email"] allowLoginUI:YES completionHandler:^(FBSession *session,FBSessionState status,NSError *error){ 
     if(error) 
     { 
      [self hideLoadingMode]; 
      NSLog(@"Facebook Error : %@",error.localizedDescription); 
// end you can use every thing you want 
     } 
     else{ 
      if (FBSession.activeSession.isOpen) { 
       [[FBRequest requestForMe] startWithCompletionHandler:^(FBRequestConnection *connection, NSDictionary<FBGraphUser> *user, NSError *error) { 
        if (!error) { 
NSlog(@"user ID %@",[user objectForKey:@"id"]); 
}else{ 
         [self hideLoadingMode]; 
        } 
       }]; 
      } 
     } 
    }]; 

我希望這會幫助你

+0

您必須導入:#import「FBSession.h」 – chawki

+0

謝謝,我認爲您直接使用圖形api而不是使用Parse實用程序。我正在失去對Parse的信任。但在我嘗試解決方案之前,我只是刪除了我的應用程序並重新安裝了它,問題就消失了。誰知道爲什麼:( – septerr

1

我刪除了我的應用程序,並重新安裝它。這解決了這個問題。問題可能是,在我開始出現這個錯誤之前,我試圖解決我的應用程序遇到的另一個Facebook相關問題。我嘗試的其中一件事是刪除我的Facebook帳戶設置> Facebook。也許這與這個錯誤有關,我不確定。

+0

從模擬器中刪除iPhone,解決了這個問題! – Raphael