2013-07-06 2 views
7

Ich habe einen Code, um mich mit der Berechtigung 'publish_actions' bei Facebook anzumelden. Hier ist der Code-Schnipsel:Facebook iOS SDK: Wie behandelt man die SKIP-Taste, wenn man publish_actions anfordert?

NSArray *facebookPermissions = [NSArray arrayWithObjects:@"publish_actions", nil]; 

[FBSession openActiveSessionWithPublishPermissions:[self facebookPermissions] 
            defaultAudience:FBSessionDefaultAudienceFriends 
             allowLoginUI:YES 
           completionHandler:^(FBSession *session, FBSessionState state, NSError *error) { 
    NSLog(@">>> Permissions available: %@", FBSession.activeSession.permissions); 
}]; 

Wenn das Verfahren ausgeführt wird, wird der Benutzer auf Mobile Safari Facebook-Seite umgeleitet werden, und fragte, ob Facebook erlaubt ist, sein/ihr Konto zuzugreifen.

Screen1:

APPNAME would like to access your public profile and friend list. 
[CANCEL] [OK] 

Nach dem Drücken von OK, da wir die openActiveSessionWithPublishPermissions Methode verwenden, eine zweite Seite fragen erscheinen wird, wenn Facebook darf Sachen in Ihrem Namen veröffentlichen.

Screen 2:

APPNAME would like to post to your friends on your behalf. 
[AUDIENCE] [SKIP] [OK] 

Der schwierige Teil ist, wenn Benutzer klickt Taste SKIP, listet das Protokoll in der Callback noch 'publish_actions' als eine der verfügbaren Berechtigungen. Was ist falsch. Die error ist auch Null. Wie erkenne ich das richtig? Diese

ist das Protokoll:

2013-07-06 16:35:59.037 FbSandbox[56213:c07] >>> Permissions available: ("publish_actions") 

Vielen Dank im Voraus!

Antwort

3

Sie können die akzeptierten Berechtigungen validieren, indem Sie callingme/permissions. Dadurch werden die Berechtigungen aufgelistet, die der Benutzer erlaubt hat. Verweisen Sie diese Liste mit den von Ihnen angeforderten Berechtigungen und Sie werden herausfinden können, welche akzeptiert und welche übersprungen wurden.

+0

Dies scheint die Antwort zu sein. Absolut schreckliches API-Design. –