2013-02-19 53 views
0

在我的應用程序,而我retrive用戶位置的返回空值,和出生日期也如下也會返回空值,代碼,用戶位置返回空值

- (void)populateUserDetails { 
if (FBSession.activeSession.isOpen) { 
    [[FBRequest requestForMe] startWithCompletionHandler: 
    ^(FBRequestConnection *connection, NSDictionary<FBGraphUser> *user, NSError *error)   { 
     if (!error) { 
      self.userNameLabel.text = user.name; 
      self.userProfileImage.profileID = [user objectForKey:@"id"]; 
      self.userbirthday.text=user.birthday; 
      self.userloc=[[user objectForKey:@"location"] objectForKey:@"name"]; 

     } 
    }]; 
    } 
} 

什麼用代碼榮?請幫助我解決這個問題?

+0

你有檢查這個線程(http://stackoverflow.com/questions/12611847/fbrequest-requestforme-startwithcompletionhandler-method-not-working-on-device) – 2013-02-19 10:12:54

+0

是啊...不僅用戶名是正確可見的只有位置和出生日期 – 2013-02-19 10:16:44

+1

這裏的文檔[Facebook文檔](http://developers.facebook.com/docs/howtos/user-data-ios-sdk/)的問題。提到你需要獲得生日和地點的許可才能找回他們。 – 2013-02-19 10:23:25

回答

2

對於生日和地點,您需要獲得此類許可。所以,你需要申請許可,像這樣:Facebook SDK Documentation

- (BOOL)openSessionWithAllowLoginUI:(BOOL)allowLoginUI { 
    NSArray *permissions = [[NSArray alloc] initWithObjects: 
          @"user_location", // you need to have this permission 
          @"user_birthday", // to be approved 
          @"user_likes", 
          nil]; 
    return [FBSession openActiveSessionWithReadPermissions:permissions 
               allowLoginUI:allowLoginUI 
             completionHandler:^(FBSession *session, 
                 FBSessionState state, 
                 NSError *error) { 
             [self sessionStateChanged:session 
                  state:state 
                  error:error]; 
            }]; 
} 

然後使用FBRequest檢索生日和位置。您可以訪問用戶名,因爲它不需要特別許可。