2

Parse SDK 1.9.1 と Facebook 4.8.0 を使用すると、コールバックを受信せず、完了ブロックが実行されません。AppDelegate に必要なものはすべて揃っており、SDK をアップグレードするまではすべてうまくいきました。

私のコードの例:

if (![PFUser currentUser]) {
    NSLog(@"!PFUser current user");
    NSArray *permissions = @[@"public_profile", @"email", @"user_friends"];

    [PFFacebookUtils logInInBackgroundWithReadPermissions:permissions block:^(PFUser *user, NSError *error) {
        NSLog(@"User:%@",[user description]);
        if (!user) {

            NSLog(@"Uh oh. The user cancelled the Facebook login.");
            NSLog(@"Uinfo :%@",[error userInfo][@"error"]);
        } else if (user.isNew) {
            NSLog(@"User signed up and logged in through Facebook!");
            [self updateUiForLoggedInUser];
            [self updateInstallationChannels];

        } else {
            NSLog(@"User logged in through Facebook!");
            [self updateUiForLoggedInUser];
            [self updateInstallationChannels];
        }
        if (error) {
            NSLog(@"Error trying to login:%@",[error description]);
        }
    }];
}

また:

 if (![PFFacebookUtils isLinkedWithUser:[PFUser currentUser]]) {
    [PFFacebookUtils linkUserInBackground:[PFUser currentUser] withReadPermissions:nil block:^(BOOL succeeded, NSError *error) {
        if (succeeded) {
            NSLog(@"Woohoo, user is linked with Facebook!");
        }
    }];
}

理由はありますか?前もって感謝します!

編集: PFFacebookUtils logInInBackgroundWithReadPermissions: を別のビューコントローラーに移動しようとしましたが、正常に動作します。MainViewController で動作しない理由はありますか?

4

1 に答える 1

0

私はそれを考え出した。なぜそれが起こったのかわかりませんが、FBFacebookUtils へのリクエストは現在非同期ではないようです... loginInBackground の直後に linkUserInBackground を呼び出しましたが、得られた応答は linkUserInBackground のみです。これら 2 つの方法を分離すると、すべてがうまく機能します。

于 2015-11-14T21:30:53.313 に答える