Я использую структуру Parse для социальной аутентификации. У моего приложения действительно простой метод, который запрашивает разрешение на публикацию в Facebook.Анализ: [PFFacebookUtils reauthorizeUser:] callback никогда не называется
Моя проблема: Блок, который я перехожу в reauthorizeUser: никогда не называется!
+(void)acquirePublishPermissionsForUser:(DHUser *)user WithCompletion:(void (^) (BOOL succeeded, NSError *error))completion
{
[PFFacebookUtils reauthorizeUser:user
withPublishPermissions:@[@"publish_actions"]
audience:FBSessionDefaultAudienceFriends
block:^(BOOL succeeded, NSError *error) {
completion(succeeded, error);
}];
}
Этот метод работает нормально. В этом случае приложение Facebook открывается и запрашивает разрешение. После нажатия OK, вы вернетесь в мое приложение. И openURL & applicationDidBecomeActive вызывается.
Это в моем приложении делегат:
- (BOOL)application:(UIApplication *)application
openURL:(NSURL *)url
sourceApplication:(NSString *)sourceApplication
annotation:(id)annotation {
// Handle Facebook authentication
return [FBAppCall handleOpenURL:url
sourceApplication:sourceApplication
withSession:[PFFacebookUtils session]];
}
- (void)applicationDidBecomeActive:(UIApplication *)application {
// Handle Facebook Authentication
[FBAppCall handleDidBecomeActiveWithSession:[PFFacebookUtils session]];
}
Я поставил точку останова, чтобы проверить: мой блок никогда не запускается на выполнение. Это действительно важно, потому что я хочу отправить сообщение в Facebook после получения разрешения. В противном случае это бесполезно.
Любые идеи?