Le partage Facebook d'ios non-Dialog échoue sans erreur et sans return

J'ai eu le partage de Facebook fonctionne bien dans mon application ios pendant un an et ont mis à jour (alias totalement réécrit) pour utiliser la dernière API (4.7.x) et maintenant le partage ne fonctionne pas du tout. Je vérifie que j'ai l'autorisation publish_actions (ce que je fais avant que cette méthode soit appelée, j'ai 'expicitally shared' cochée dans les parameters de graphes ouverts, les types d'actions, les capacités.) Je valide le contenu (je n'ai pas d'erreur) délégué, aucune de ses methods n'est appelée.

-(void)shareWithFacebook:(NSSsortingng *)message { if ([[FBSDKAccessToken currentAccessToken] hasGranted:@"publish_actions"]) { NIDINFO(@"Facebook sharing has publish_actions permission"); } else { FBSDKLoginManager *loginManager = [[FBSDKLoginManager alloc] init]; [loginManager logInWithPublishPermissions:@[@"publish_actions"] handler:^(FBSDKLoginManagerLoginResult *result, NSError *error) { NIDERROR(@"Facebook sharing getting publish_actions permission failed: %@", error); } ]; } NSMutableDictionary *properties = [NSMutableDictionary dictionaryWithDictionary: @{ @"og:type": @"article", @"og:title": @"Bloc", @"og:description": message, @"og:url": @"http://getonbloc.com/download" }]; FBSDKShareOpenGraphObject *object = [FBSDKShareOpenGraphObject objectWithProperties:properties]; // Create the action FBSDKShareOpenGraphAction *action = [FBSDKShareOpenGraphAction actionWithType:@"mynamespace:Share" object:object key:@"article"]; [action setSsortingng:@"true" forKey:@"fb:explicitly_shared"]; // Create the content FBSDKShareOpenGraphContent *content = [[FBSDKShareOpenGraphContent alloc] init]; content.action = action; content.previewPropertyName = @"article"; // Share the content FBSDKShareAPI *shareAPI = [[FBSDKShareAPI alloc] init]; shareAPI.shareContent = content; shareAPI.delegate = self; NSError *error; if([shareAPI validateWithError:&error] == NO) { NIDERROR(@"Facebook sharing content failed: %@", error); } [shareAPI share]; } #pragma mark - FBSDKSharingDelegate - (void) sharer:(id<FBSDKSharing>)sharer didCompleteWithResults:(NSDictionary *)results { NIDINFO(@"Facebook sharing completed: %@", results); } - (void) sharer:(id<FBSDKSharing>)sharer didFailWithError:(NSError *)error { NIDERROR(@"Facebook sharing failed: %@", error); } - (void) sharerDidCancel:(id<FBSDKSharing>)sharer { NIDINFO(@"Facebook sharing cancelled."); } 

Je me connecte et je peux get des photos très bien. Je ne reçois aucun commentaire de la part de l'API Facebook, rien n'est posté. Est-ce que je fais quelque chose de particulièrement stupide ici?

Juste une possibilité, mais je trouve que l'intégration de Facebook est devenue gênante parce que je trouve que chaque fois que je vérifie le jeton actuel pour une permission accordée par hasGranted: il échoue presque toujours même si j'ai obtenu la permission il y a quelques minutes lancement.

Il semble que dans votre code, si aucune permission n'est accordée, vous essayez de vous connecter et d'get l'autorisation à nouveau. Mais quand ce bloc revient, peu importe si l'autorisation réelle est accordée ou non, vous lancez une erreur. Au lieu de cela, vous devriez continuer à partager si cela réussit.