2012-11-07 16 views
0

我有快速的問題:的iOS 6.0 SDK的Facebook的權限,無法得到用戶的性別

此代碼段工程:

NSArray *permissions = @[@"email", @"user_birthday"]; 
    return [FBSession openActiveSessionWithReadPermissions:permissions 
               allowLoginUI:allowLoginUI 
             completionHandler:^(FBSession *session, 
                  FBSessionState state, 
                  NSError *error) { 
              [self sessionStateChanged:session 
                   state:state 
                   error:error]; 
             }]; 

這並不:

NSArray *permissions = @[@"email", @"user_birthday", @"gender"]; 
return [FBSession openActiveSessionWithReadPermissions:permissions 
              allowLoginUI:allowLoginUI 
            completionHandler:^(FBSession *session, 
                 FBSessionState state, 
                 NSError *error) { 
             [self sessionStateChanged:session 
                  state:state 
                  error:error]; 
            }]; 

我只是要求Facebook用戶的性別,在第一種情況下,我已經在我的NSLog控制檯上:發現用戶會話很棒......但是當我擴展權限並在其中包含性別時,我已經得到了UIAlertView: 錯誤 該操作無法完成。 (com.facebook.sdk錯誤2.)

我做錯了什麼?如何請求獲得用戶性別的權限?

回答

0

看那list of permissions - gender是不是其中之一 - 性別,然而在User object的領域,也被暴露在user FQL table,你可以,一旦用戶訪問sex列授予您的基本權限訪問他們的數據。

示例查詢(SDK不可知)只返回當前用戶的性別是根本 /me?fields=gender,返回值將是

{ 
    "gender": "male", 
    "id": "533875325" 
} 

注意,訪問用戶時,它也返回默認響應,所以你不需要明確地指定它。

而且,有些用戶可能不具有性別定義(雖然我認爲這是比較少見的)

1

正如你所看到的here,性別是基本信息的一部分。 而且每當你打開一個有權限的會話時,它都會要求提供基本信息。 既然你已經擁有它,臉譜必須認爲它是一個錯誤。

我在通過這種方式詢問用戶名時遇到了同樣的問題。

1

性別不是的公共屬性,因此,您無法訪問使用user.gender,爲你做用user.name,在這裏你有一個字典,你可以訪問傳遞的密鑰。

喜歡:

_genderLabel.text = [user objectForKey:@"gender"]; 

乾杯