1

アプリにFacebookログインを統合しましたが、ユーザーデータを取得できません。つまり、Appdelegate.mでユーザー詳細ループに入っていません

- (BOOL)openSessionWithAllowLoginUI:(BOOL)allowLoginUI {
    NSArray *permissions = [[NSArray alloc] initWithObjects:
                            @"email",
                            @"user_likes",
                            nil];
    return [FBSession openActiveSessionWithReadPermissions:permissions
                                              allowLoginUI:allowLoginUI
                                         completionHandler:^(FBSession *session,
                                                             FBSessionState state,
                                                             NSError *error) {
                                             [self sessionStateChanged:session
                                                                 state:state
                                                                 error:error];
                                         }];





}


- (void)sessionStateChanged:(FBSession *)session
                      state:(FBSessionState) state
                      error:(NSError *)error
{
    switch (state) {
        case FBSessionStateOpen:
                     if (!error) {
                // We have a valid session
                NSLog(@"User session found");


                         [[FBRequest requestForMe] startWithCompletionHandler:
                          ^(FBRequestConnection *connection,
                            NSDictionary<FBGraphUser> *user,
                            NSError *error) {
                                  if (!error) {

                                  NSLog(@"%@",user);



                              }}];
                           break;
        case FBSessionStateClosed:
        case FBSessionStateClosedLoginFailed:
           [[FBSession activeSession] closeAndClearTokenInformation];

            break;
        default:
            break;
    }
 if (error) {
        UIAlertView *alertView = [[UIAlertView alloc]
                                  initWithTitle:@"Error"
                                  message:error.localizedDescription
                                  delegate:nil
                                  cancelButtonTitle:@"OK"
                                  otherButtonTitles:nil];
        [alertView show];
    }

    }
}

しかし、セッションが開かれているにもかかわらず、ユーザー NSLog(@"%@",user) の NSLog が印刷されていない bcoz NSLog(@"User session found") が印刷されている Y そうですか?

4

1 に答える 1

0

mysession のインスタンスではなく mysession クラスを返していることがわかりました。これで問題が解決する場合があります:

- (BOOL)application:(UIApplication *)application
            openURL:(NSURL *)url
  sourceApplication:(NSString *)sourceApplication
         annotation:(id)annotation {

    return [mysession handleOpenURL:url];
}
于 2013-02-19T13:44:34.010 に答える